
//  SelMe Βάζει class 'sel' στο li που παίρνει σαν παράμετρο και το βγάζει από όλα τα υπόλοιπα μέσα στο ul
jQuery.fn.selme = function()
{
$(this).parents('ul').find('li').each(function(index, element) {
	if($(element).hasClass('sel'))
	{ 
		$(element).removeClass('sel');
	}
});
$(this).addClass('sel')	;

}
jQuery.fn.selme_ul = function()
{
$(this).parents('ul').find('ul').each(function(index, element) {
	if($(element).hasClass('sel'))
	{ 
		$(element).removeClass('sel');
	}
});
$(this).addClass('sel')	;

}

// Πρέπει να μπει στο $(document).ready κάνει όλα τα input[text] που έχουνε class auto_clear να καθαρίζονται όταν τα πατάς 
// Θέλει να έχουνε και ένα attr st_value με το default value
function auto_clear()
{
	$('.auto_clear').each(function(index, element) {$(element).attr('st_value',$(element).attr('value'));});
	$('.auto_clear').focusin(function(e) { 	if($(this).attr('value') == $(this).attr('st_value')){$(this).attr('value','')}});
	$('.auto_clear').focusout(function(e) { if($(this).attr('value') == ''){$(this).attr('value',$(this).attr('st_value'))}});
}


// Πετάει alert για τα υποχρεωτικά πεδία.
// Το καλούμε στο onSubmit της φόρμας και στα πεδία πρέπει να έχουμε class required και μπροστά πρέπει να έχουνε label με το όνομα του πεδίου.
function check_fields(event){
	var form =(navigator.appName != "Microsoft Internet Explorer")?event.currentTarget:event.srcElement;
	var flag = true;
	$(form).find(':visible.required').each(function(index, element) {
		switch($(element).attr("type"))
		{
			case "text":
				if($(element).val().length < 1)
				{
					var lbl = $("label[for='"+$(element).attr('id')+"']").html();
					//lbl = lbl.substr(0,lbl.length-1)
					if($("#tooltip").is("#tooltip"))
					{
						$(element).tooltip_me("Το πεδίο "+lbl+" είναι υποχρεωτικό.");
					}
					else
					{
						alert("Το πεδίο "+lbl+" είναι υποχρεωτικό.");
					}
					$(element).trigger("focus").addClass('flash');
					flag = false;
					return false;
				}
			break;
		}
		if($(element).is("textarea"))
		{
			if($(element).val().length < 1)
			{

			var lbl = $("label[for='"+$(element).attr('id')+"']").html();
			//lbl = lbl.substr(0,lbl.length-1)
			if($("#tooltip").is("#tooltip"))
			{
				$(element).tooltip_me("Το πεδίο "+lbl+" είναι υποχρεωτικό.");
			}
			else
			{
				alert("Το πεδίο "+lbl+" είναι υποχρεωτικό.");
			}
			$(element).trigger("focus").addClass('flash');
			flag = false;
			return false;
			}
		}

	});
	
	if(flag)
	{
		$(form).find(".mail").each(function(index, element)
		{
			if(!checkemail($(element).val()))
			{
				if($("#tooltip").is("#tooltip"))
					{
						$(element).tooltip_me("Το e-mail που γράψατε δεν ισχύει");
					}
					else
					{
						alert("Το e-mail που γράψατε δεν ισχύει");
					}
					$(element).trigger("focus").addClass('flash');
					prevDef(event);
					flag = false;
					return false;
			}
		});
	}
	return flag;
}

/// Προσθέτει tooltip Δεξιά και στην μέση αυτουνού που το καλεί
jQuery.fn.tooltip_me = function(text,stays)
{
	var t = this;
	if(text !=''){$("#tooltip").html(text);}
	var l = $(t).offset().left + parseInt($(t).width());
	var top = $(t).offset().top + parseInt($(t).height()/2) - parseInt($("#tooltip").height()*0.5);
	$("#tooltip").css({"display":"block","left":l+18,"top":top-8});
	if(!$("#tooltip").hasClass("fadeout"))
	{
		$("#tooltip").addClass("fadeout");
		function end(event){$(event.currentTarget).removeClass("fadeout");
		$(event.currentTarget).unbind("animationend",end)}
		$("#tooltip").bind("animationend", end);  
		$("#tooltip").bind("webkitAnimationEnd", end);  
	}
}

function remove_tooltip()
{
	$("#tooltip").css({"display":"none","left":"200%","top":"200%"});
}
// check mail 
function checkemail(mail)
{
var x=mail;
var atpos=x.indexOf("@");
var dotpos=x.lastIndexOf(".");
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
  {
  return false;
  }
  else
  {
	  return true;
	}
}

// auto resizable textarea

function resize_textarea()
{
	$('.resisable_ta').each(function(index, element) {
		var timeout = ''
		$(element).wrap("<div class='ghost_par' style='min-height:30px;white-space:pre-wrap;position:relative'>");
		$(element).parent().width($(element).width());
		$(element).height('100%');
		$(element).css({'position':'absolute','overflow':'hidden','margin':'0'});
		$(element).after("<div style='word-wrap: break-word;visibility:hidden;line-height:"+$(element).css('lineHeight')+"'></div>");
		function tout() {(this).next('div').html($(this).attr('value')+' ')}
		$(element).keyup( function()
		{var t = this; timeout = setTimeout(function(){$(t).next('div').html($(t).attr('value')+' ')},100)
		});
	});
}

// TRIM BY MoSs
String.prototype.trim = function() {
	tmp = this.replace(/^\s+/, '');
	return tmp.replace(/\s+$/, '');
};


// Send Form
function send_form(e) {
	if(check_fields(e))
	{
		var inputs = '';
		var form_type = $(e.currentTarget).attr('form_type');
		$(e.currentTarget).find("input,select,textarea").each(function(index, element) {
			if($(element).is(":visible"))
			{
				switch ($(element).attr('type'))
				{
					case 'text':
						if($(element).val()!='')
						{
							if(index!=0){inputs+=';';}
							inputs+=$(element).attr('id');
							inputs = inputs.replace($(element).attr('p')+';','');
					}
					break;
					case 'radio':
						if($(element).is(':checked'))
						{
							if(index!=0){inputs+=';';}
							inputs+=$(element).attr('id');
						}
					break;
					case 'checkbox':
						if($(element).is(':checked'))
						{
							if(index!=0){inputs+=';';}
							inputs+=$(element).attr('id');
						}
					break;
				}
				if($(element).is('select'))
				{
					if(index!=0){inputs+=';';}
					inputs+=$(element).attr('id');
					inputs = inputs.replace($(element).attr('p')+';','');
				}
				if($(element).is('textarea'))
				{
					if(index!=0){inputs+=';';}
					inputs+=$(element).attr('id');
					inputs = inputs.replace($(element).attr('p')+';','');
				}
			}
		
		});
		inputs = '#'+inputs;
		acp($(e.currentTarget).attr("action")+'?form='+inputs,'POST','',function(data)
		{
			alert("Το μήνυμά σας εστάλη με επιτυχία..");
		})
	}
}

jQuery.fn.wait_css_trans = function (f)
{
	if(!$(this).get(0).addEventListener("transitionend", f, false))
	if(!$(this).get(0).addEventListener("webkitTransitionEnd", f, false))
	$(this).get(0).addEventListener("oTransitionEnd", f, false);
}


jQuery.fn.remove_trans_listener = function(f)
{
	if(!$(this).get(0).removeEventListener("transitionend", f, false))
	if(!$(this).get(0).removeEventListener("webkitTransitionEnd", f, false))
	$(this).get(0).removeEventListener("oTransitionEnd", f, false);
}


function prevDef(event)  { if(!event){event=window.event;}(event.preventDefault)?event.preventDefault():(event.returnValue = false);}


jQuery.fn.sw_class = function(class1,class2)
{
	if($(this).hasClass(class1)){$(this).removeClass(class1).addClass(class2);}
	else{$(this).removeClass(class2).addClass(class1);}
}


jQuery.fn.fadeoutanddie = function ()
{
	$(this).addClass('trans_op_500');
	var t = $(this);
	$(this).wait_css_trans(function(){$(t).remove();});
	$(this).css({'opacity':0});
}

jQuery.fn.fadeoutandstay = function ()
{
	$(this).addClass('trans_op_500');
	var t = $(this);
	function r(){$(t).css({'display':'none'});}
	$(this).wait_css_trans(r);
	$(this).css({'opacity':0});
}

jQuery.fn.fadein = function ()
{
	$(this).addClass('trans_op_500');
	var t = $(this);
	$(this).wait_css_trans(function(){ $(t).css({'display':'block'});$(t).removeClass('trans_op_500');});
	$(this).css({'opacity':1});
}


jQuery.fn.stick_to_mouse = function(opts)
{
	$(this).css({'opacity':'0.5'});
	var t = this.clone(true,true);
	var tt = this;
	//$(t).unbind('mousemove');
	$(t).appendTo('body');
	$(t).css({'display':'none','pointer-events':'none'});
	$(t).css({'position':'fixed','z-index':200,'top':0,'left':0,'opacity':0.5});
	$(t).css({'display':'block'});
	$(t).css({	
				'-moz-transform':'translate('+((opts.e.pageX)-opts.offsetx)+'px,'+((opts.e.pageY)-opts.offsety)+'px)',
				'-webkit-transform':'translate('+((opts.e.pageX)-opts.offsetx)+'px,'+((opts.e.pageY)-opts.offsety)+'px)'
			});
	var start_x  = $(t).offset().left;
	var start_y  = $(t).offset().top;
	var a=0;
	var clears = 0;
	var prex,prey;
	$(window).mouseup(function(e) 
	{
		$(e.currentTarget).unbind('mousemove');
		$(window).unbind('mousemove');
		$(t).remove();
		$(tt).css({'opacity':'1'});
	});
	$(window).mousemove(function(event)
	{	

	$(t).css({	
				'-moz-transform':'translate('+((event.pageX)-opts.offsetx)+'px,'+((event.pageY)-opts.offsety)+'px)',
				'-webkit-transform':'translate('+((event.pageX)-opts.offsetx)+'px,'+((event.pageY)-opts.offsety)+'px)'
			});
	});
}


