function trim(str, chars) 
{
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) 
{
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) 
{
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}


function user_check(nick_name, id)
{
	var pattern = new RegExp ("^[_a-z0-9\. éáűőúöüóí-]+$", "gi");
	
	nick_name= trim(nick_name);
	
	if(nick_name.length == 0)
	{
		$(id).innerHTML = "Add meg a kívánt felhasználónevet!";
	}
	else if (nick_name.length > 0 && nick_name.length < 4)
	{
		$(id).innerHTML = "A felhasználónév túl rövid! (minimum 4 karakter)";
	}
	else if (nick_name.length > 20)
	{
		$(id).innerHTML = "A felhasználónév túl hosszú! (maximum 20 karakter)";
	}
	else if(nick_name.toLowerCase() == "vendég")
	{
		$(id).innerHTML = "Ez a felhasználónév nem megengedett!";
	}
	else if (!pattern.test(nick_name))
	{
		$(id).innerHTML = "A felhasználónév nem megengedett karaktert tartalmaz!";
		Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
	}
	else
	{
		new Ajax.Request('/ajax_loader.php',
		{
			method:'post',
		 	parameters: {nick: nick_name},
		 	onSuccess: function(transport)
			{
			   var response = transport.responseXML || "nincs válasz";

			   if (response.getElementsByTagName('data')[0].firstChild.data == "exists")
				{
					$(id).innerHTML = "Már van ilyen regisztrált felhasználónév!";
					Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
				}
				else
				{
					$(id).innerHTML = "<img src='images/bg/check.jpg' alt='' />";
					Effect.Pulsate(id, { pulses: 2, duration: 1 });
				}
		 	},
		 	onFailure: function()
			 { 
			 	alert('A felhasználónév ellenőrzése közben hiba történt!') 
			 }
		});
	}
}

function check_email(email, id, mode, username)
{
	var pattern = new RegExp ("^[a-z0-9._-]+@[a-z0-9._-]+\\.[^0-9!][a-z]+$", "gi");
	
	email= trim(email);
	
	if (email.length == 0)
	{
		$(id).innerHTML = "Add meg az e-mail címedet!";
		Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
	}
	else if (email.length > 50)
	{
		$(id).innerHTML = "Az e-mail cím túl hosszú! (maximum 50 kar.)";
		Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
	}
	else if (!pattern.test(email))
	{
		$(id).innerHTML = "Nem érvényes e-mail cím!";
		Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
	}
	else //ajax ellenőrzés
	{
		new Ajax.Request('/ajax_loader.php',
		{
			method:'post',
		 	parameters: {email: email, mode : mode, user : username},
		 	onSuccess: function(transport)
			{
			   var response = transport.responseXML || "nincs válasz";

			   if (response.getElementsByTagName('data')[0].firstChild.data == "exists")
				{
					$(id).innerHTML = "Ezzel az e-mail címmel már van regisztrált felhasználónk!";
					Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
				}
				else
				{
					$(id).innerHTML = "<img src='images/bg/check.jpg' alt='' />";
					Effect.Pulsate(id, { pulses: 2, duration: 1 });
				}
		 	},
		 	onFailure: function()
			 { 
			 	alert('Az e-mail cím ellenőrzése közben hiba történt!') 
			 }
		});
	}
}


function check_password(id)
{
	var password_1 = trim(document.reg_form.reg_password.value);
	var password_2 = trim(document.reg_form.reg_password2.value);
	
	if (password_1.length != 0 || password_2.length != 0)
	{
		$(id).innerHTML = "";
		if (password_1 == password_2)
		{
			if (password_1.length < 5)
			{
				$(id).innerHTML = "A jelszó túl rövid! (min. 5 kar.)";
				Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
			}
			else if (password_1.length > 15)
			{
				$(id).innerHTML = "A jelszó túl hosszú! (maximum 15 kar.)";
				Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
			}
			else
			{
				$(id).innerHTML = "<img src='images/bg/check.jpg' alt='' />";
				Effect.Pulsate(id, { pulses: 2, duration: 1 });
			}
		}
		else
		{
			$(id).innerHTML = "A két jelszó nem egyforma!";
			Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
		}
	}
	else
	{
		$(id).innerHTML = "Add meg a használni kívánt jelszót!";
		Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
	}
}

function check_name(name, id)
{
	name = trim(name);
	
	var pattern = new RegExp ("^[a-z \.éáűőúöüóí-]+$", "gi");
	
	if (name.length == 0)
	{
		$(id).innerHTML = "Írd be a teljes neved!";
		Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
	}
	else if(name.length > 50)
	{
		$(id).innerHTML = "A név túl hosszú! (maximum 50 kar.))";
		Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
	}
	else if (!pattern.test(name))
	{
		$(id).innerHTML = "A név nem megengedett karaktert tartalmaz!";
		Effect.Pulsate(id, { pulses: 3, duration: 1.5 });

	}
	else
	{
		$(id).innerHTML = "<img src='images/bg/check.jpg' alt='' />";
		Effect.Pulsate(id, { pulses: 2, duration: 1 });
	}
}

function check_birth_date(check_id, id)
{
	var datum = trim($(check_id).value);
	datum = $(check_id).value;
   
   if (!isDate(datum, 'yyyy.MM.dd.'))
   {
      $(id).innerHTML = "Hibás dátumot adtál meg!";
		Effect.Pulsate(id, { pulses: 3, duration: 1.5 });      
   }
   else
   {
      //ellenőrizendő dátumhoz paraméterek
		var year = datum.substr(0,4);
		var month = datum.substr(5,2);
		var day = datum.substr(8,2);
      month--; //hónapot eggyel csökkenteni kell, mert nullával indul a sorszámozás
		//ellenőrizendő dátum
		date_to_check = formatDate(new Date(year, month, day), 'yyyy.MM.dd.');
      //mai dátum      
      var today = formatDate(new Date(), 'yyyy.MM.dd.');
      //elfogadható legkorábbi dátum
      var mindate = formatDate(new Date(1900, 1, 1), 'yyyy.MM.dd.');
      //elfogadható legkésőbbi dátum
      var maxdate = formatDate(new Date(2000, 1, 1), 'yyyy.MM.dd.');
      
      if(compareDates(date_to_check, 'yyyy.MM.dd.', today, 'yyyy.MM.dd.') == 1)
      {
         $(id).innerHTML = "Jövőbeli dátumot adtál meg!";
			Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
      }
      else if (compareDates(date_to_check, 'yyyy.MM.dd.', mindate, 'yyyy.MM.dd.') == 0)
      {
         $(id).innerHTML = "A legkorábbi dátum 1900.01.01. lehet!";
			Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
      }
      else if (compareDates(date_to_check, 'yyyy.MM.dd.', maxdate, 'yyyy.MM.dd.') == 1)
      {
         $(id).innerHTML = "A legkésőbbi dátum 2000.01.01. lehet!";
			Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
      }
      else
      {
         $(id).innerHTML = "<img src='images/bg/check.jpg' alt='' />";
         Effect.Pulsate(id, { pulses: 2, duration: 1 });
      }
   }
}

function check_sex(sex, id)
{
	if ((sex == "1") || (sex == "2"))
	{
			$(id).innerHTML = "<img src='images/bg/check.jpg' alt='' />";
			Effect.Pulsate(id, { pulses: 2, duration: 1 });
	}
	else
	{
			$(id).innerHTML = "Válaszd ki a nemed!";
			Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
	}
}

function check_page(page, id)
{
	page = trim(page);
	
	if (page.length > 0)
	{
		var pattern = new RegExp("^[\.a-z0-9:\/]+\\.[a-z]+$");
		
		pos = page.indexOf("http://");
		if ( pos == -1)
		{
			document.reg_form.page.value = "http://" + page;
		}
		
		if (page.length > 50)
		{
			$(id).innerHTML = "A honlap címe túl hosszú! (maximum 50 kar.))";
			Effect.Pulsate(id, { pulses: 3, duration: 1.5 });	
		}
		else if (!pattern.test(page))
		{
			$(id).innerHTML = "Nem érvényes honlap cím!";
			Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
		}
		else
		{
			$(id).innerHTML = "<img src='images/bg/check.jpg' alt='' />";
			Effect.Pulsate(id, { pulses: 2, duration: 1 });
		}
	}
}

function check_phone(phone, id)
{
	phone = trim(phone);
	
	if (phone.length > 0)
	{
		var pattern = new RegExp("^[0-9/-]+$");
		if (phone.length > 15)
		{
			$(id).innerHTML = "A telefonszám túl hosszú! (maximum 15 kar.)";
			Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
		}
		else if (!pattern.test(phone))
		{
			$(id).innerHTML = "A telefonszám nem megengedett karaktert tartalmaz!";
			Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
			
		}
		else
		{
			$(id).innerHTML = "<img src='images/bg/check.jpg' alt='' />";
			Effect.Pulsate(id, { pulses: 2, duration: 1 });
		}
	}
	else
	{
		$(id).innerHTML = "";
	}
}


//ország ellenőrzése
function change_country(value)
{
	$('city_error').innerHTML = "";
	
	//Magyarország lett kiválasztva: új select beszúrása és megye lista betöltése
	if (value == 110) 
	{
		//megye lista engedélyezése
		county = $('county');
		county.disabled = false;
		
		city = $('city');
		//ha a település beviteli éppen text és nem select
		if (city.getAttribute('type') == 'text')
		{
			$('city_p').removeChild(city);
			//település lista select felfűzése
			var city_select = Builder.node('select', {	id	: 'city',
																	 	name : 'city',
																	 	onchange :	"check_city(this.value, 'city_error', this.id)"
				 													}
													);
			
			var city_help_span = $('city_help'); 
			$('city_p').insertBefore(city_select, city_help_span);
			
			var option = new Option("kérlek válassz", "---");
			document.reg_form.city.options[0] = option;
			city_select.disabled = true;
		}
		
		
		//megye lista betöltése Ajax-al
		new Ajax.Request('/ajax_loader.php',
		{
			method:'post',
		 	parameters: {country: 'hungary'},
		 	onSuccess: function(transport)
			{
			   var response = transport.responseXML || "nincs válasz";
				
				document.reg_form.county.options.length = 0;
				var option = new Option('kérlek válassz', '---');
				document.reg_form.county.options[0] = option;
				
				
				for (i=0; i < response.getElementsByTagName('data').length; i++)
				{
					var list_item = response.getElementsByTagName('data')[i].firstChild.data;
					var county_id = response.getElementsByTagName('data')[i].firstChild.data.substring(0,3);
					var county_name = response.getElementsByTagName('data')[i].firstChild.data.substring(4);
					var option = new Option(county_name, county_id);
					document.reg_form.county.options[i+1] = option;									
				}
		 	},
		 	onException: function()
			{ 
				alert('A megyelista betöltése közben hiba történt! Kérjük írd be a település nevét ahol élsz!');
			 	
				city = $('city');
				$('city_p').removeChild(city);
			 	
			 	var city_text = Builder.node('input', {	type : 'text',
			 															id	: 'city',
																	 	name : 'city',
																	 	size : '25',
																	 	maxlength : '40',
																	 	onblur :	"check_city(this.value, 'city_error', this.id)"
				 													}
													);
				var city_help_span = $('city_help'); 
				$('city_p').insertBefore(city_text, city_help_span);
			}
		});
	}
	else //ha nem Magyarország van kiválasztva akkor <select> eltávolítása és új text mező beillesztése a településnévnek
	{
		//megye lista ürítése és letiltása
		document.reg_form.county.options.length = 0;
		var option = new Option('kérlek válassz', '---');
		document.reg_form.county.options[0] = option;
		
		var county = $('county');
		county.disabled = true;
		
		$('county_error').innerHTML = "";
		var city = $('city');
		
		$('city_p').removeChild(city);
		
		var city_text = Builder.node('input', {	type : 'text',
			 															id	: 'city',
																	 	name : 'city',
																	 	size : '25',
																	 	maxlength : '40',
																	 	onblur :	"check_city(this.value, 'city_error', this.id)"
				 													}
													);
		var city_help_span = $('city_help'); 
		$('city_p').insertBefore(city_text, city_help_span);
	}
}

function change_county(county, id)
{
	if (county != '---')
	{
		$(id).innerHTML = "<img src='images/bg/check.jpg' alt='' />";
		Effect.Pulsate(id, { pulses: 2, duration: 1 });
		$('city').disabled = false;
		$('city_error').innerHTML = "";
		
		// településlista elem betöltése ajax-al
		new Ajax.Request('/ajax_loader.php',
		{
			method:'post',
		 	parameters: {county: county},
		 	onSuccess: function(transport)
			{
			   var response = transport.responseXML || "nincs válasz";
				
				document.reg_form.city.options.length = 0;
				var option = new Option('kérlek válassz', '---');
				document.reg_form.city.options[0] = option;
				
				for (i=0; i < response.getElementsByTagName('data').length; i++)
				{
					var settlement = response.getElementsByTagName('data')[i].firstChild.data;
					var option = new Option(settlement, settlement);
					document.reg_form.city.options[i+1] = option;									
				}
		 	},
		 	onException: function()
			{ 
				alert('A településlista betöltése közben hiba történt! Kérjük írd be a település nevét ahol élsz!');
			 	city = $('city');
				$('city_p').removeChild(city);
			 	
			 	var city_text = Builder.node('input', {	type : 'text',
			 															id	: 'city',
																	 	name : 'city',
																	 	size : '25',
																	 	maxlength : '40',
																	 	onblur :	"check_city(this.value, 'city_error', this.id)"
				 													}
													);
				var city_help_span = $('city_help'); 
				$('city_p').insertBefore(city_text, city_help_span);
			}
		});
	}
	else
	{
		$(id).innerHTML = "Válaszd ki melyik megyében élsz!";
		Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
		//település lista ürítése
		document.reg_form.city.options.length = 0;
		var option = new Option('kérlek válassz', '---');
		document.reg_form.city.options[0] = option;
		//település hiba nullázása
		$('city_error').innerHTML = "";
		//település lista letiltása
		$('city').disabled = true;
	}
}

//település ellenőrzése
function check_city(city, id)
{
	city = trim(city);
	
	if (city.length > 0)
	{	
		var pattern = new RegExp("^[a-zéáűőúöüóí-]+$", "gi");
		
		if (city == "---")
		{
			$(id).innerHTML = "Add meg a település nevét, ahol élsz!";
			Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
		}
		else if (city.length > 40)
		{
			$(id).innerHTML = "A település neve túl hosszú! (maximum 40 kar.)";
			Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
		}
		else if (!pattern.test(city))
		{
			$(id).innerHTML = "A település neve nem megengedett karaktert tartalmaz!";
			Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
		}
		else
		{
			$(id).innerHTML = "<img src='images/bg/check.jpg' alt='' />";
			Effect.Pulsate(id, { pulses: 2, duration: 1 });
		}
	}
	else
	{
		$(id).innerHTML = "Add meg a település nevét, ahol élsz!";
		Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
	}
}

function check_address(address, id)
{
	address = trim(address);
	
	if (address.length > 0)
	{
		var pattern = new RegExp("^[0-9 \./a-zéáűőúöüóí-]+$", "gi");
		
		if (address.length > 50)
		{
			$(id).innerHTML = "A cím túl hosszú! (maximum 50 kar.)";
			Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
		}
		else if (!pattern.test(address))
		{
			$(id).innerHTML = "A cím nem megengedett karaktert tartalmaz!";
			Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
		}
		else
		{
			$(id).innerHTML = "<img src='images/bg/check.jpg' alt='' />";
			Effect.Pulsate(id, { pulses: 2, duration: 1 });
		}
	}
}

function check_msn(email, id)
{
	email = trim(email);
	if (email.length > 0)
	{
		var pattern = new RegExp ("^[a-z0-9._-]+@[a-z0-9._-]+\\.[^0-9!][a-z]+$", "gi");

		if (email.length > 50)
		{
			$(id).innerHTML = "A Messenger azonosító túl hosszú! (maximum 50 kar.)";
			Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
		}
		else if (!pattern.test(email))
		{
			$(id).innerHTML = "Nem érvényes Messenger azonosító!";
			Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
		}
		else
		{
			$(id).innerHTML = "<img src='images/bg/check.jpg' alt='' />";
			Effect.Pulsate(id, { pulses: 2, duration: 1 });
		}
	}
}

function check_skype(skype, id)
{
	skype = trim(skype);
	
	if (skype.length > 0)
	{
		var pattern = new RegExp("^[0-9 \./a-zéáűőúöüóí-]+$", "gi");
		
		if (skype.length > 50)
		{
			$(id).innerHTML = "A Skype azonosító túl hosszú! (maximum 50 kar.)";
			Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
		}
		else if (!pattern.test(skype))
		{
			$(id).innerHTML = "Nem érvényes Skype azonosító!";
			Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
		}
		else
		{
			$(id).innerHTML = "<img src='images/bg/check.jpg' alt='' />";
			Effect.Pulsate(id, { pulses: 2, duration: 1 });
		}
	}
}

function check_icq(icq, id)
{
	icq = trim(icq);
	
	if (icq.length > 0)
	{
		var pattern = new RegExp("^[0-9]+$");
		
		if (icq.length > 12)
		{
			$(id).innerHTML = "Az ICQ azonosító túl hosszú! (maximum 12 szám)";
			Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
		}	
		else if (!pattern.test(icq))
		{
			$(id).innerHTML = "Az ICQ azonosító csak számokat tartalmazhat!";
			Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
		}
		else
		{
			$(id).innerHTML = "<img src='images/bg/check.jpg' alt='' />";
			Effect.Pulsate(id, { pulses: 2, duration: 1 });
		}
	}
	else
	{
		$(id).innerHTML = "";
	}
}

function checkGaleryName(name, id)
{
	name = trim(name);
	
	var pattern = new RegExp ("^[a-z0-9 \.,?!éáűőúöüóí-]+$", "gi");
	
	if (name.length == 0)
	{
		$(id).innerHTML = "Add meg a galéria címét!";
		Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
	}
	else if(name.length > 25)
	{
		$(id).innerHTML = "A cím túl hosszú! (maximum 25 karakter)";
		Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
	}
	else if (!pattern.test(name))
	{
		$(id).innerHTML = "A cím nem megengedett karaktert tartalmaz!";
		Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
	}
	else
	{
		$(id).innerHTML = "<img src='images/bg/check.jpg' alt='' />";
		Effect.Pulsate(id, { pulses: 2, duration: 1 });
	}
}

function checkGaleryDescription(description, id)
{
	description = trim(description);
	
	var pattern = new RegExp ("^[a-z0-9 \.,!?éáűőúöüóí-]+$", "gi");
	
	if(description.length > 0)
	{
		if(description.length < 10)
		{
			$(id).innerHTML = "A leírás túl rövid! (minimum 10 karakter)";
			Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
		}
		else if(description.length > 180)
		{
			$(id).innerHTML = "A leírás túl hosszú! (maximum 180 karakter)";
			Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
		}
		else if (!pattern.test(description))
		{
			$(id).innerHTML = "A leírás nem megengedett karaktert tartalmaz!";
			Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
		}
		else
		{
			$(id).innerHTML = "<img src='images/bg/check.jpg' alt='' />";
			Effect.Pulsate(id, { pulses: 2, duration: 1 });
		}
	}
}

function checkImageTitle(name, id)
{
	name = trim(name);
	
	var pattern = new RegExp ("^[a-z0-9 \.,?!éáűőúöüóí-]+$", "gi");
	
	if (name.length > 0)
	{
		if(name.length > 25)
		{
			$(id).innerHTML = "A cím túl hosszú! (maximum 25 karakter)";
			Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
		}
		else if (!pattern.test(name))
		{
			$(id).innerHTML = "A cím nem megengedett karaktert tartalmaz!";
			Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
		}
		else
		{
			$(id).innerHTML = "<img src='images/bg/check.jpg' alt='' />";
			Effect.Pulsate(id, { pulses: 2, duration: 1 });
		}	
	}
}

function updateImageTitle(image_id, image_title)
{
	image_title = trim(image_title);
	
	var pattern = new RegExp ("^[a-z0-9 \.,?!éáűőúöüóí-]+$", "gi");
	
	var title = prompt("Add meg a kép címét!", image_title);	
	
	if (!pattern.test(title))
	{
		title = prompt("A kép címe nem megengedett karakter tartalmaz!", title);
	}
	else if (title.length > 25)
	{
		title = prompt("A kép címe túl hosszú! (maximum 25 karakter)", title);
	}
	else
	{
		new Ajax.Request('/ajax_loader.php',
		{
			method:'post',
		 	parameters: {galeryimageid: image_id, imagetitle: title},
		 	onSuccess: function(transport)
			{
			   var response = transport.responseXML || "nincs válasz";

			   if (response.getElementsByTagName('data')[0].firstChild.data == "ok")
				{
					$('title_' + image_id).innerHTML = title;
               
				}
				else
				{
					alert("A módosítás közben hiba történt!");
				}
		 	},
		 	onFailure: function()
			 { 
			 	alert("A módosítás közben hiba történt!"); 
			 }
		});
	}
	
}

function delayedUserSampleLoad()
{
	var image = $('user_img');
	image.src = 'images/registered/ferret.jpg';
	image.width = '100';
	new Effect.Opacity('user_img', { duration: 3.0, from: 0, to: 1 });
	new Effect.Puff('delete_button', {delay:1.0});
}

function resetUserImage(image_id, sex)
{
	new Ajax.Request('/ajax_loader.php',
		{
			method:'post',
		 	parameters: {user_image_id: image_id,
			 				 sex : sex	
							 },
		 	onSuccess: function(transport)
			{
			   var response = transport.responseXML || "nincs válasz";
			   if (response.getElementsByTagName('data')[0].firstChild.data == "ok")
				{
					new Effect.Opacity('user_img', { duration: 3.0, from: 1, to: 0 });
					var st = setTimeout('delayedUserSampleLoad()', 3100);
				}
				else
				{
					alert("A fénykép törlése közben hiba történt!");
				}
		 	},
		 	onFailure: function()
			{ 
				alert("A fénykép törlése közben hiba történt!"); 
		 	}
		}
	);
}


function delayedFerretSampleLoad()
{
	var image = $('ferretimage');
	image.src = 'images/registered/ferret.jpg';
	image.width = '100';
	new Effect.Opacity('ferretimage', { duration: 3.0, from: 0, to: 1 });
	new Effect.Puff('deletebutton', {delay:1.0});
}

function resetFerretImage(image_id)
{
	new Ajax.Request('/ajax_loader.php',
		{
			method:'post',
		 	parameters: {ferret_image_id: image_id},
		 	onSuccess: function(transport)
			{
			   var response = transport.responseXML || "nincs válasz";
			   if (response.getElementsByTagName('data')[0].firstChild.data == "ok")
				{
					new Effect.Opacity('ferretimage', { duration: 3.0, from: 1, to: 0 });
					var st = setTimeout('delayedFerretSampleLoad()', 3100);
				}
				else
				{
					alert("A fénykép törlése közben hiba történt!");
				}
		 	},
		 	onFailure: function()
			{ 
				alert("A fénykép törlése közben hiba történt!"); 
		 	}
		}
	);
}


function setCursorPosition(id, pos)
{
	area = $(id);

	if(area.setSelectionRange) //Firefox
	{
		area.focus();
		area.setSelectionRange(pos,pos);
	}
	else if (area.createTextRange) //IE
	{
		var range = area.createTextRange();
		range.collapse(true);
		range.moveEnd('character', pos);
		range.moveStart('character', pos);
		range.select();
	}
}

	
function getCursorPosition (id) 
{
	var textarea = $(id);
	var CursorPos = 0;	// IE Support
   textarea.focus();
	
   if (document.selection) 
	{
      var selection_range = document.selection.createRange().duplicate();
      
      if (selection_range.parentElement() == textarea) 
      {    
         var before_range = document.body.createTextRange();
         before_range.moveToElementText(textarea);                    // Selects all the text
         before_range.setEndPoint("EndToStart", selection_range);     // Moves the end where we need it
      
         var after_range = document.body.createTextRange();
         after_range.moveToElementText(textarea);                     // Selects all the text
         after_range.setEndPoint("StartToEnd", selection_range);      // Moves the start where we need it
      
         var before_finished = false, selection_finished = false, after_finished = false;
         var before_text, untrimmed_before_text, selection_text, untrimmed_selection_text, after_text, untrimmed_after_text;
      
         //Load the text values we need to compare
         before_text = untrimmed_before_text = before_range.text;
         selection_text = untrimmed_selection_text = selection_range.text;
         after_text = untrimmed_after_text = after_range.text;
      
         do 
         {
            if (!before_finished) 
            {
               if (before_range.compareEndPoints("StartToEnd", before_range) == 0) 
               {
                   before_finished = true;
               } else 
               {
                   before_range.moveEnd("character", -1)
                   if (before_range.text == before_text) 
                   {
                       untrimmed_before_text += "\r\n";
                   } else 
                   {
                       before_finished = true;
                   }
               }
            }
            if (!selection_finished) 
            {
               if (selection_range.compareEndPoints("StartToEnd", selection_range) == 0) 
               {
                  selection_finished = true;
               } 
               else 
               {
                  selection_range.moveEnd("character", -1)
                  if (selection_range.text == selection_text) 
                  {
                     untrimmed_selection_text += "\r\n";
                  } 
                  else 
                  {
                     selection_finished = true;
                  }
               }
            }
            if (!after_finished) 
            {
               if (after_range.compareEndPoints("StartToEnd", after_range) == 0) 
               {
                   after_finished = true;
               } 
               else 
               {
                  after_range.moveEnd("character", -1)
                  if (after_range.text == after_text) 
                  {
                       untrimmed_after_text += "\r\n";
                  } 
                  else 
                  {
                     after_finished = true;
                  }
               }
           }
         } while ((!before_finished || !selection_finished || !after_finished));
      
         var untrimmed_text = untrimmed_before_text + untrimmed_selection_text + untrimmed_after_text;
         var untrimmed_successful = false;

         if (textarea.value == untrimmed_text) 
         {
            untrimmed_successful = true;
         }
      
         var startPoint = untrimmed_before_text.length;
         var endPoint = startPoint + untrimmed_selection_text.length;
         var selected_text = untrimmed_selection_text;

         CursorPos = startPoint;
      }
	}
	else if (textarea.selectionStart || textarea.selectionStart == '0') 	// Firefox support
	{
		CursorPos = textarea.selectionStart;
	}
	return CursorPos;
}


function insertSmileyCode(areaId, code)
{
	area = $(areaId);
	
   var cursorPosition = getCursorPosition(areaId);
   var fullText = area.value; 
	var textBegin = fullText.substring(0, cursorPosition);
	var textEnd = fullText.substring(cursorPosition);

	textBegin += code + ' ';
	area.value = textBegin + textEnd;
	
	setCursorPosition(areaId, textBegin.length);	 
}

function messageLength()
{
		var area = $("message").value;
		var text = $('message_length');
		
		if (area.length > 180)
		{
			text.setAttribute("class", "comment_length_error");
			text.setAttribute("className", "comment_length_error");
		}
		else
		{
			text.setAttribute("class", "comment_length");
			text.setAttribute("className", "comment_length");
		}
		text.innerHTML = 'Az üzenet hossza: ' + area.length;
		
}

function ferretCommentLength()
{
		var area = $("ferret_comment").value;
		var text = $('comment_length');
		
		if (area.length > 180)
		{
			text.setAttribute("class", "comment_length_error");
			text.setAttribute("className", "comment_length_error");
		}
		else
		{
			text.setAttribute("class", "comment_length");
			text.setAttribute("className", "comment_length");
		}
		text.innerHTML = 'A megjegyzés hossza: ' + area.length;
}

function galeryCommentLength()
{
		var area = $("galery_comment").value;
		var text = $('comment_length');
		
		if (area.length > 180)
		{
			text.setAttribute("class", "comment_length_error");
			text.setAttribute("className", "comment_length_error");
		}
		else
		{
			text.setAttribute("class", "comment_length");
			text.setAttribute("className", "comment_length");
		}
		text.innerHTML = 'A megjegyzés hossza: ' + area.length;
}


function check_message()
{
	var text = $("message").value
		
	if (text.length == 0)
	{
		window.alert("Írd be az üzenet szövegét!");
		return false;
	}
	if (text.length > 180)
	{
		window.alert("Az üzenet legfeljebb 180 karakter hosszú lehet!");
		return false;
	}
	return true;
}

function check_comment()
{
	var text = $("ferret_comment").value
		
	if (text.length == 0)
	{
		window.alert("Írd be a megjegyzés szövegét!");
		return false;
	}
	if (text.length > 180)
	{
		window.alert("A megjegyzés legfeljebb 180 karakter hosszú lehet!");
		return false;
	}
	return true;
}

function checkGaleryComment()
{
	var text = $("galery_comment").value
		
	if (text.length == 0)
	{
		window.alert("Írd be a megjegyzés szövegét!");
		return false;
	}
	if (text.length > 180)
	{
		window.alert("A megjegyzés legfeljebb 180 karakter hosszú lehet!");
		return false;
	}
	return true;
}

function getElementsByClass(node, searchClass, tag)
{
	var classElements = new Array();
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp('\\b' + searchClass + '\\b');

	for (i = 0, j = 0; i < elsLen; i++)
	{
			if ( pattern.test(els[i].className) )
			{
				classElements[j] = els[i];
				j++;
			}
	}
	return classElements;
}

function email()
{
	var maildivider="[qkac]"

	for (i=0; i<=(document.links.length-1); i++)
	{
		if (document.links[i].href.indexOf(maildivider)!=-1)
		document.links[i].href=document.links[i].href.split(maildivider)[0]+"@"+document.links[i].href.split(maildivider)[1]
	}


	var emails = getElementsByClass(document, 'email', '*');
	for (i=0; i < emails.length; i++)
	{
		var email = emails[i].innerHTML;
		emails[i].innerHTML = email.replace(maildivider, "@");
	}
}


function checkFerretName(name, id)
{
	name = trim(name);
	
	var pattern = new RegExp ("^[a-z \.éáűőúöüóí-]+$", "gi");
	
	if (name.length == 0)
	{
		$(id).innerHTML = "Írd be a teljes neved!";
		Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
	}
	else if(name.length > 50)
	{
		$(id).innerHTML = "A név túl hosszú! (maximum 50 kar.))";
		Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
	}
	else if (!pattern.test(name))
	{
		$(id).innerHTML = "A név nem megengedett karaktert tartalmaz!";
		Effect.Pulsate(id, { pulses: 3, duration: 1.5 });

	}
	else
	{
		$(id).innerHTML = "<img src='images/bg/check.jpg' alt='' />";
		Effect.Pulsate(id, { pulses: 2, duration: 1 });
	}
}


function checkFerretBirthDate(check_id, id)
{
	var datum = trim($(check_id).value);
	datum = $(check_id).value;
   
   if (!isDate(datum, 'yyyy.MM.dd.'))
   {
      $(id).innerHTML = "Hibás dátumot adtál meg!";
		Effect.Pulsate(id, { pulses: 3, duration: 1.5 });      
   }
   else
   {
      //ellenőrizendő dátumhoz paraméterek
		var year = datum.substr(0,4);
		var month = datum.substr(5,2);
		var day = datum.substr(8,2);
      month--; 
		
		date_to_check = formatDate(new Date(year, month, day), 'yyyy.MM.dd.');
            
      var today = formatDate(new Date(), 'yyyy.MM.dd.');
      //elfogadható legkorábbi dátum
      var mindate = formatDate(new Date(1900, 1, 1), 'yyyy.MM.dd.');
      
      if(compareDates(date_to_check, 'yyyy.MM.dd.', today, 'yyyy.MM.dd.') == 1)
      {
         $(id).innerHTML = "Jövőbeli dátumot adtál meg!";
			Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
      }
      else if (compareDates(date_to_check, 'yyyy.MM.dd.', mindate, 'yyyy.MM.dd.') == 0)
      {
         $(id).innerHTML = "A legkorábbi dátum 1900.01.01. lehet!";
			Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
      }
      else
      {
         $(id).innerHTML = "<img src='images/bg/check.jpg' alt='' />";
         Effect.Pulsate(id, { pulses: 2, duration: 1 });
      }
   }
}

function checkParentName(name, id)
{
	name = trim(name);
	
	var pattern = new RegExp ("^[a-z \.éáűőúöüóí-]+$", "gi");
	
	if(name.length > 50)
	{
		$(id).innerHTML = "A név túl hosszú! (maximum 50 kar.))";
		Effect.Pulsate(id, { pulses: 3, duration: 1.5 });
	}
	else if (!pattern.test(name))
	{
		$(id).innerHTML = "A név nem megengedett karaktert tartalmaz!";
		Effect.Pulsate(id, { pulses: 3, duration: 1.5 });

	}
	else
	{
		$(id).innerHTML = "<img src='images/bg/check.jpg' alt='' />";
		Effect.Pulsate(id, { pulses: 2, duration: 1 });
	}
}

function getSelectedIndex(box, text)
{
   for (i=0; i < box.options.length; i++)
   {
      if (box.options[i].value == text)
      {
         return i;   
      }
   }
}

function pauseScript(millis)
{
	var date = new Date();
	var curDate = null;
	
	do 
	{ 
		curDate = new Date(); 
	} 	while(curDate-date < millis);
}


function loadFerret(id)
{
	$('message').innerHTML = "";
   $('name').value = "";
   $('birthdate').value = "";
   $('ripdate').value = "";
   $('father').value = "";
   $('mother').value = "";
   $('intro').value = "";
   $('sex').options[0].selected = true;
   $('color').options[0].selected = true;
   $('hairtype').options[0].selected = true;
   $('pattern').options[0].selected = true;
   $('secondowner').options[0].selected = true;
   
   spans = $('form').getElementsByTagName('span')
   for (i=0; i<spans.length; i++)
   {
      if (spans[i].className == 'error')
      {
         spans[i].innerHTML = "";
      }   
   }

   var fpicture = $('ferret_img');
   if (fpicture.hasChildNodes() == true)
   {
      var image = $('ferretimage');
		fpicture.removeChild(image);
		var button = $('deletebutton');
		if (button)
		{
			$('delete').removeChild(button);	
		}
		
   }

   if (id == "---")
   {
      $('action').value = "new";
      $('page_title').innerHTML = "Új göri feltöltése";
   }
   else
   {
      new Ajax.Request('/ajax_loader.php',
		{
			method:'post',
		 	parameters: {ferretid: id},
		 	onSuccess: function(transport)
			{
			   var response = transport.responseXML || "nincs válasz";
            
            if ( response.getElementsByTagName('name')[0].firstChild)
            {            
               $('name').value = response.getElementsByTagName('name')[0].firstChild.data;
            }
            if ( response.getElementsByTagName('birthdate')[0].firstChild)
            {
               var birthdate = response.getElementsByTagName('birthdate')[0].firstChild.data;
               birthdate = birthdate.replace(/-/g, ".");
               birthdate += ".";
               $('birthdate').value = birthdate;
            }
            if ( response.getElementsByTagName('ripdate')[0].firstChild)
            {
               var ripdate = response.getElementsByTagName('ripdate')[0].firstChild.data;
               if (ripdate != '0000-00-00')
               {
                  ripdate = ripdate.replace(/-/g, ".");
                  ripdate += ".";
                  $('ripdate').value = ripdate;
               }
            }
            if ( response.getElementsByTagName('father')[0].firstChild)
            {
               $('father').value = response.getElementsByTagName('father')[0].firstChild.data;
            }
            if ( response.getElementsByTagName('mother')[0].firstChild)
            {
               $('mother').value = response.getElementsByTagName('mother')[0].firstChild.data;
            }
            if ( response.getElementsByTagName('intro')[0].firstChild)
            {
               
               $('intro').value = response.getElementsByTagName('intro')[0].firstChild.data; //.replace('<br />', '\r\n')
               
            }
            if ( response.getElementsByTagName('sex')[0].firstChild)
            {
               var i = getSelectedIndex($('sex'), response.getElementsByTagName('sex')[0].firstChild.data);
               $('sex').options[i].selected = true;
            }
            if ( response.getElementsByTagName('color')[0].firstChild)
            {
               i = getSelectedIndex($('color'), response.getElementsByTagName('color')[0].firstChild.data);
               $('color').options[i].selected = true;
            }
            if ( response.getElementsByTagName('pattern')[0].firstChild)
            {
               i = getSelectedIndex($('pattern'), response.getElementsByTagName('pattern')[0].firstChild.data);
               $('pattern').options[i].selected = true;
            }
            if ( response.getElementsByTagName('hairtype')[0].firstChild)
            {
               i = getSelectedIndex($('hairtype'), response.getElementsByTagName('hairtype')[0].firstChild.data);
               $('hairtype').options[i].selected = true;
            }
            if ( response.getElementsByTagName('hairtype')[0].firstChild)
            {
               i = getSelectedIndex($('hairtype'), response.getElementsByTagName('hairtype')[0].firstChild.data);
               $('hairtype').options[i].selected = true;
            }
            if ( response.getElementsByTagName('secondownerid')[0].firstChild)
            {
               i = getSelectedIndex($('secondowner'), response.getElementsByTagName('secondownerid')[0].firstChild.data);
               $('secondowner').options[i].selected = true;
            }
            if ( response.getElementsByTagName('picture')[0].firstChild)
            {
   			 	var image = Builder.node('img', { src   : 'images/registered/' + response.getElementsByTagName('picture')[0].firstChild.data,
                                                 alt   : response.getElementsByTagName('name')[0].firstChild.data + ' fényképe',
                                                 title : response.getElementsByTagName('name')[0].firstChild.data + ' fényképe',
                                                 id    : 'ferretimage',
																 width : '100'  
		 	 													}
   													);
 
   				$('ferret_img').appendChild(image);
            }
             
            if ( response.getElementsByTagName('uploaded')[0].firstChild.data == 1)
            {
            	var image_id = response.getElementsByTagName('imageid')[0].firstChild.data;
            	
					var button = Builder.node('button', {	type : 'button', 
            		                                    id    : 'deletebutton',
            		                                    onclick	:	'resetFerretImage(' + image_id + ')'
			 	 													}
   													);
 
					$('delete').appendChild(button);
					$('deletebutton').innerHTML = 'Kép törlése';
            }
				
            $('action').value = "update";
            $('page_title').innerHTML = response.getElementsByTagName('name')[0].firstChild.data + " adatainak módosítása";
		 	},
		 	onFailure: function()
			 { 
			 	alert('A göri adatainak betöltése közben hiba történt!'); 
			 }
		});
   }
}

function setFerretVisitNumber(id)
{
   new Ajax.Request('/ajax_loader.php',
	{
		method : 'post',
	 	parameters: {fid: id},
	 	onSuccess: function(transport)
		{
         var response = transport.responseXML || "nincs válasz";

		   if (response.getElementsByTagName('data')[0].firstChild.data == "success")
			{
            
			}
			else
			{
            
			}
	 	},
	 	onFailure: function()
      {
         
      }
	});
}

function confirmGaleryDelete()
{
   var form = $("deletegalery")
   var input = form.getElementsByTagName('input');
   var hasGalery = false;
   
   for (i=0; i<input.length; i++)
   {
      if(input[i].getAttribute("type")== "checkbox")
      {
         if (input[i].checked == true)
         {
            return confirm('Biztos, hogy törölni akarod a kijelölt galériá(ka)t?');
         }
         hasGalery = true; 
      }
   }
   if (hasGalery)
   {
      alert('Nem jelöltél ki egy galériát sem!');
      return false;
   }
   else
   {
      alert('Még nem töltöttél fel egy galériát sem!');
      return false;
   }
}

function confirmGaleryImageDelete()
{
   var form = $("deleteimage")
   var input = form.getElementsByTagName('input');
   var hasImage = false;
   
   for (i=0; i<input.length; i++)
   {
      if(input[i].getAttribute("type")== "checkbox")
      {
         if (input[i].checked == true)
         {
            return confirm('Biztos, hogy törölni akarod a kijelölt képe(ke)t?');
         }
         hasImage = true; 
      }
   }
   if (hasImage)
   {
      alert('Nem jelöltél ki egy képet sem!');
      return false;
   }
   else
   {
      alert('Még nem töltöttél fel egy képet sem!');
      return false;
   }
}

function setGaleryVisitNumber(id)
{
   new Ajax.Request('/ajax_loader.php',
	{
		method : 'post',
	 	parameters: {gid: id},
	 	onSuccess: function(transport)
		{
         var response = transport.responseXML || "nincs válasz";

		   if (response.getElementsByTagName('data')[0].firstChild.data == "success")
			{
            
			}
			else
			{
            
			}
	 	},
	 	onFailure: function()
      {
         
      }
	});
}

//email álca felfűzése betöltéskor
document.observe("dom:loaded", email); 


// Declaring valid date character, minimum year and maximum year
var dtCh= "/";
var minYear=1900;
var maxYear=2100;

function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}

function isDate(dtStr){
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strMonth=dtStr.substring(0,pos1)
	var strDay=dtStr.substring(pos1+1,pos2)
	var strYear=dtStr.substring(pos2+1)
	strYr=strYear
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	if (pos1==-1 || pos2==-1){
		alert("The date format should be : mm/dd/yyyy")
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
		alert("Please enter a valid month")
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		alert("Please enter a valid day")
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		alert("Please enter a valid date")
		return false
	}
return true
}

function ValidateForm(){
	var dt=document.frmSample.txtDate
	if (isDate(dt.value)==false){
		dt.focus()
		return false
	}
    return true
 }


function isValidDate(day,month,year){
/*
Purpose: return true if the date is valid, false otherwise

Arguments: day integer representing day of month
month integer representing month of year
year integer representing year

Variables: dteDate - date object

*/
var dteDate;

//set up a Date object based on the day, month and year arguments
//javascript months start at 0 (0-11 instead of 1-12)
dteDate=new Date(year,month,day);

/*
Javascript Dates are a little too forgiving and will change the date to a reasonable guess if it's invalid. We'll use this to our advantage by creating the date object and then comparing it to the details we put it. If the Date object is different, then it must have been an invalid date to start with...
*/

return ((day==dteDate.getDate()) && (month==dteDate.getMonth()) && (year==dteDate.getFullYear()));
}
