function dateChecker(day, month, year){
	this._day = parseInt(day);
	this._month = parseInt(month);
	this._year = parseInt(year);

	this.check = function(min_age){
		if(this._day == 0 || this._month == 0 || this._year == 0)
			return false;

		var d = new Date();
		var t_dt = this._year * 10000 + this._month * 100 + this._day;
		var c_dt = d.getFullYear() * 10000 + (d.getMonth()+1) * 100 + d.getDate();

		if((c_dt - t_dt)/10000 < min_age)
			return -1;

		d.setFullYear(this._year,this._month-1,this._day);
		return (d.getDate() == this._day && (d.getMonth() + 1) == this._month && d.getFullYear() == this._year);
	}
}

function checkDate(f){
	var dc = new dateChecker(f.day.value, f.month.value, f.year.value);
	var chc = dc.check(10);
	if( chc  == -1 ){
		alert('הרשמה לאתר מגיל 10 ומעלה');
		return false;
	}else if( !chc ) {
		alert('תאריך לידה שגוי');
		return false;
	} 
	return true;
}

function is_gender_selected(frm_gender){
	for( i=0; i<frm_gender.length; i++ )
		if( frm_gender[i].checked )
			return true;
	return false; 
}

function validate(){
	var elems = document.forms.profile.elements;
	if( elems.first_name.value=="" || elems.last_name.value=="" ||
			(! is_gender_selected(elems.gender))  || 
			elems.year.value==""      || elems.month.value==""     ||
			elems.day.value=="" || elems.first_name.value =="" || elems.last_name.value=="" ||
			elems.home_city.value=="" || (check_passwd && elems.pwd.value=="") )
	{
		alert(err_msg_required);
		return false;
	}
	if(!test_email(elems.join_email.value)){
		alert('דואר אלקטרוני שצויין שגוי');
		return false;
	}
	
	if(check_passwd){
		if( elems.pwd.value != elems.pwd_rpt.value ){
			alert(err_msg_password_repeated);
			return false;
		}
		if( ! test_panelist_pwd(elems.pwd.value) )		{
			alert(msg_invalid_password);
			return false;
		}
	}
/*	
	if(!elems.first_name.value.match(/^[א-ת]{2,}$/) || !elems.last_name.value.match(/^[א-ת]{2,}(\s[א-ת]{2,})?$/)){
		alert('שם ושם משפחה חייבים להיות בעברית.');
		return false;
	}

*/
	
	if(elems.pri_check && !elems.pri_check.checked){
		alert('נא לאשר את תקנון האתר');
		return false;
	}
	return true;
}


function trim(str){
		return str.replace(/^\s*|\s*$/g,"");
}

function clearEvent(e){
	var ev = window.event ? e.keyCode : e.which;
	return (ev != 13);
}

$(document).ready(function(){
	$("#city_inp").keydown(clearEvent);
	$("#city_inp").keypress(clearEvent);
	$("#city_inp").keyup(function(e){cityKey(e, this.value);});
	$("#city_inp").blur(function(){   $("#suj_comp").hide("fast"); $("#suj_comp").html('');    });
	$("#city_inp").focus(function(){search_city(this.value);});
	$("#city_inp").click(function(){search_city(this.value);});
});

var sel_menu_item = null;
var tmp_menu_item = -1;
var sel_item_count = 0;
var sel_cities = null;
var selectable_dis =  (document.all) ? "unselectable=\"On\"" : '';

function load_city_data(data){
	sel_menu_item = null;
	data = data.split(",");
	var instr = '';
	sel_item_count = data.length;
	sel_cities = data;
	tmp_menu_item = -1;
	if(data[0] == trim($("#city_inp").val()) && sel_item_count == 1){
		set_city(0);
		return;
	}

	if(data[0] != "" )
		for(var i=0; i<data.length; i++)
			instr += "<div " + selectable_dis + " class='ddl_obj' id=\"s_m_"+i+"\" onmousedown='set_city("+i+")'>"+data[i]+"</div>";
	$("#suj_comp").html(instr);
	$("#suj_comp").show();
}

function search_city(city_prefix){
	data = {'n':city_prefix, 'limit':10};
	$.post("./city_sel/city_loader.php",data, load_city_data);
}

function set_city(id){
	$('#city_inp').val(sel_cities[id]);
	$("#suj_comp").hide("fast", function(){$("#suj_comp").html('');});

}

function cityKey(e, city_prefix){
	e =  window.event ?  window.event : e;
	var ev = window.event ? e.keyCode : e.which;
	city_prefix = trim(city_prefix);
	if((ev > 40 || ev < 37) && ev != 13){
		search_city(city_prefix);
		return;
	}
	if(sel_cities[0] == trim($("#city_inp").val()) && sel_item_count == 1)
		return;
	switch(ev){
		case 38:
			if(tmp_menu_item == -1) tmp_menu_item++;
			document.getElementById("s_m_" + tmp_menu_item).className = 'ddl_obj';
			tmp_menu_item = (sel_item_count + (tmp_menu_item - 1)) % sel_item_count;
			document.getElementById("s_m_" + tmp_menu_item).className +=  ' ddl_obj_over';
			break;
		case 40:
			if(tmp_menu_item != -1)
				document.getElementById("s_m_" + tmp_menu_item).className = 'ddl_obj';
			tmp_menu_item = (sel_item_count + (tmp_menu_item + 1)) % sel_item_count;
			document.getElementById("s_m_" + tmp_menu_item).className += ' ddl_obj_over';
			break;
		case 13:
			e.cancelBubble = true;
			if (e.stopPropagation) e.stopPropagation();
			if(tmp_menu_item > -1)
				set_city(tmp_menu_item);
			e.returnValue = false;
			break;
	}
	//alert(ev);
}

function readyToSubmit(){
 if(sel_menu_item != null)
  return true;
 var data_send = {'n':$("#city_inp").val(), 'limit':1};
 $.post("./city_sel/city_loader.php",data_send, function(data){
  if(data != ""){
   $("#city_inp").val(data);
   Ext.MessageBox.confirm('נא לאשר', worning_message, function(x){
    if(x == 'yes'){
     document.forms.profile.onsubmit = function(e){return validate()&& checkDate(this);}
     document.forms.profile.submit();
    }
   });
  }
  else{
   alert("\t\t  היישוב שצויין איננו מופיע ברשומינו\n\t\t נא לבחור שם יישוב הקרוב ביותר");
  }
 });
 return false;
}