﻿
function mouse_over_a_mima()
{
	//alert('run to pic number '+i_rolling_to+', your mouse is over pic number '+i_mouse_over);
	clearTimeout(rolling_timer);
	if(document.getElementById('gene'+i_rolling_to)==null)
		return;
	remove_classname('gene'+i_rolling_to,'hover');
	if(i_mouse_over!=i_rolling_to)
	{
		//Element.removeClassName('gene'+i_rolling_to,'hover');//no matter whether (i_mouse_over==i_rolling_to)
		//Element.addClassName('gene'+i_mouse_over,'hover');
		//no matter whether (i_mouse_over==i_rolling_to)
		add_classname('gene'+i_mouse_over,'hover');
		i_rolling_to=i_mouse_over;
	}
}

function mouse_over_mimas()
{
	clearTimeout(rolling_timer);
	for(i=1;i<=num2compare;i++)
	{
		//turn off if necessary
		if(i_mouse_over!=i_rolling_to)//if mouse over any picture other than the hover one (which is normally the case)
		{
			ele_name_div_tolling_to="gene_"+i+"_"+i_rolling_to;
			//Element.removeClassName(ele_name_div_tolling_to,'hover');
			remove_classname(ele_name_div_tolling_to,'hover');
		}
		//turn on
		ele_name_div2be_on='gene'+'_'+i+'_'+i_mouse_over;
		if(document.getElementById(ele_name_div2be_on)!=null)
		{
			//Element.addClassName(ele_name_div2be_on,'hover');
			add_classname(ele_name_div2be_on,'hover');
		}
	}
}

function auto_rollover()
{
	clearTimeout(rolling_timer);
	//if($('gene'+i_rolling_to)) can't use such statement if prototype.lite.js is not included
	if(document.getElementById('gene'+i_rolling_to)!=null)
	{
		//Element.removeClassName('gene'+i_rolling_to,'hover');
		remove_classname('gene'+i_rolling_to,'hover');
	}
	i_rolling_to=i_rolling_to+1;
	if(i_rolling_to>13)
		i_rolling_to=1;
	//Element.addClassName('gene'+i_rolling_to,'hover');
	add_classname('gene'+i_rolling_to,'hover');
	rolling_timer=window.setTimeout('auto_rollover()',3000);
}


function auto_rollover_genes()
{
	for(i=1;i<=num2compare;i++)
	{
		ele_name_div2be_off='gene'+'_'+i+'_'+i_rolling_to;
		if(document.getElementById(ele_name_div2be_off)!=null)
		{
			//Element.removeClassName(ele_name_div2be_off,'hover');
			remove_classname(ele_name_div2be_off,'hover');
		}
	}
	i_rolling_to=i_rolling_to+1;
	if(i_rolling_to>13)
		i_rolling_to=1;
	for(i=1;i<=num2compare;i++)
	{
		ele_name_div2be_on='gene'+'_'+i+'_'+i_rolling_to;
		if(document.getElementById(ele_name_div2be_on)!=null)
		{
			//Element.addClassName(ele_name_div2be_on,'hover');
			add_classname(ele_name_div2be_on,'hover');
		}
	}
	clearTimeout(rolling_timer);
	rolling_timer=window.setTimeout('auto_rollover_genes()',3000);
}

function on_submit_registration()
{
	//check email
	//ele=document.getElementById("email");
	ele=registration_form.email;
	var email_str=ele.value;
	var email_format=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	if (!email_format.test(email_str))
	//if(!email_str)
	{
		ele.focus();
		ele.select();
		//alert("invalid email");
		show_error_msg("mima_signup_error","请填入真实有效的 Email");
		return false;
	}

	//check username
	ele=document.getElementById("txtmeettaname");
	if(ele.value==""||ele.value=="在此填入您的 Meetta 昵称")
	{
		ele.focus();
		ele.select();
		show_error_msg("mima_signup_error","您还没填入您的 Meetta 昵称");
		return false;
	}

	//check gender
	eles=document.getElementsByName("txtgender");
	gender_checked_flag=false;
	for(i=0;i < eles.length;i++)
	{
		if(eles[i].checked)
			gender_checked_flag=true;
	}
	if(gender_checked_flag==false)
	{
		show_error_msg("mima_signup_error","您还没选择性别");
		return false;
	}
	
	//check age
	ele=document.getElementById("txtage");
	if(ele.value=="")
	{
		show_error_msg("mima_signup_error","您还没填入年龄");
		return false;
	}
	if(!is_numeric(ele.value))
	{
		show_error_msg("mima_signup_error","年龄只能为阿拉伯数字");
		return false;
	}

	//check password
	//ele=document.getElementById("password");
	ele=registration_form.password;
	if(ele.value=='')
	{
		ele.focus();
		show_error_msg("mima_signup_error","您还没填入您的 Meetta 密码.");
		return false;
	}
	if(!is_alphanumeric(ele))
	{
		ele.focus();
		show_error_msg("mima_signup_error","密码只能是大小写英文字符和阿拉伯数字");
		return false;
	}
	pwd_length=ele.value.length;
	if(pwd_length < 5 || pwd_length > 20)
	{
		ele.focus();
		show_error_msg("mima_signup_error","密码应该在5到20个字符长，您输入的密码长度为"+pwd_length+"个字符");
		return false;
	}
	if(document.getElementById("password2").value!=ele.value)
	{
		ele.focus();
		show_error_msg("mima_signup_error","您的确认密码和密码不同");
		return false;
	}

	//check spam_code
	ele=document.getElementById("spam_code");
	if(ele.value=='')
	{
		ele.focus();
		ele.select();
		//alert("invalid email");
		show_error_msg("mima_signup_error","请填入验证码");
		return false;
	}

	//check chk_agree_term check box
	ele=document.getElementById("chk_agree_term");
	if(ele.checked==false)
	{
		show_error_msg("mima_signup_error","请同意遵守会员服务条款");
		return false;
	}

	//if code run to here, ready to submit..
	ele=document.getElementById("row_inprogress_bar");
	ele.style.display="";
	registration_form.submit();
}

function show_error_msg(ele_error,msg)
{ 
	eee=get_element_by_id(ele_error);
	//alert(ele.innerHTML);
	eee.innerHTML="<p><b>"+msg+"</p></b>";
	//eee.value = "<p><b>"+msg+"</p></b>";
	//Element.addClassName(eee,"error");
	//eee.className='error';
	/*eee.style.display = "block";
	eee=document.getElementById("tr_"+ele_msg);
	eee.style.display='';*/
}

function clear_error_msg(ele_msg)
{
	ele=get_element_by_id(ele_msg);
	eee.innerHTML='';
}

function is_alphanumeric(ele)
{
	var legalSet="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
	return are_chars_all_legal(ele.value, legalSet);
}

//value of ele_name must be integer between int_min and int_max, inclusively
//other wise alert and get the focus back 
function must_be_int_between(ele_name,int_min,int_max)
{
	var the_ele=document.getElementById(ele_name);
	the_value=parseInt(the_ele.value);
	if(the_value<int_min||the_value>int_max)
	{
		alert("请填入合理的数值");
		the_ele.focus();
		the_ele.select();
		return false;
	}
	else
	{
		//alert("element["+ele_name+"] value["+the_value+"] is between ("+int_min+"--"+int_max+")");
		the_ele.value=the_value;
		return true;
	}
}


function is_numeric(a_value)
{
	var legalSet="0123456789.";
	return are_chars_all_legal(a_value, legalSet);
}

function is_digit(a_value)
{
	var legalSet="0123456789";
	return are_chars_all_legal(a_value, legalSet);
}

function cvalidate(ele,valid_type)/*my own validation*/
{
	if(ele.value=='')//if no input, it's fine
		return;
	if(valid_type=="digits")
	{
		if(!is_digit(ele.value))
		{
			ele.focus();
			ele.select();
			alert("请只填入数字");
		}
	}
	else if(valid_type=="number")
	{
		if(!is_numeric(ele.value))
		{
			ele.focus();
			ele.select();
			alert("请只填入数字和点");
		}
	}
	else if(valid_type=="alphanumeric")
	{
		if(!is_alphanumeric(ele))
		{
			ele.focus();
			ele.select();
			alert("请只填入大小写字母和数字");
		}
	}
	else if(valid_type=="email")
	{
		var email_format=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
		if (!email_format.test(ele.value))
		{
			ele.focus();
			ele.select();
			alert("请填入真实有效的 Email");
		}
	}
	else
	{
		if(!is_digit(ele.value))
		{
			alert("programmer mistake: function call error for js function cvalidation, check js");
		}
	}
}

function are_chars_all_legal(sourceStr, legalSet)
{
	if(sourceStr=='')
		return false;
    var i, c;
    for (i=0; i < sourceStr.length; i++)
    {
        c=sourceStr.charAt(i);
    	//alert("for "+c+":"+legalSet.indexOf(c));
        if (legalSet.indexOf(c) <= -1)
		{
			//alert("char ["+c+"] in "+sourceStr+" is found in "+legalSet);
			return false;
		}
    }
    return true;
}

function on_auth_submit(form_ele)
{
	//check email
	ele=form_ele.email;
	var email_str=ele.value;
	var email_format=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	if (!email_format.test(email_str))
	//if(!email_str)
	{
		ele.focus();
		ele.select();
		//alert("invalid email");
		show_error_msg("form1error","请填入真实有效的 Email");
		return false;
	}

	//check password
	ele=form_ele.password;
	if(ele.value=='')
	{
		ele.focus();
		show_error_msg("form1error","您还没填入您的 Meetta 密码.");
		return false;
	}
	if(!is_alphanumeric(ele))
	{
		ele.focus();
		show_error_msg("form1error","密码只能是大小写英文字符和阿拉伯数字");
		return false;
	}
	pwd_length=ele.value.length;
	if(pwd_length < 5 || pwd_length > 20)
	{
		ele.focus();
		show_error_msg("form1error","密码应该在5到20个字符长，您输入的密码长度为"+pwd_length+"个字符");
		return false;
	}
	form_ele.submit();
}

function has_classname(ele_name,class_name)
{
	ele=document.getElementById(ele_name);
	if(ele==null)
	{
		alert(ele_name+" not existent(has)");
		return false;
	}
	if(ele.className.match(new RegExp("\\b"+class_name+"\\b")))
		return true;
	else
		return false;
}

function add_classname(ele_name,class_name)
{
	ele=document.getElementById(ele_name);
	if(ele==null)
	{
		alert(ele_name+" not existent(add)");
		return false;
	}
	old_class_name=ele.className;
	if(!has_classname(ele_name,class_name))
		ele.className+=' '+class_name;
	/*alert(old_class_name+'---->'+ele.className);*/
}

function remove_classname(ele_name,class_name)
{
	ele=document.getElementById(ele_name);
	if(ele==null)
	{
		alert(ele_name+" not existent(remove)");
		return false;
	}
	old_class_name=ele.className;	
	if(has_classname(ele_name,class_name))
		ele.className=ele.className.replace(class_name,'');
	/*alert(old_class_name+'---->'+ele.className);*/
}

function am_i_registered_user(the_answer)
{
	if(the_answer=='yes')
	{
		document.getElementById('prompt_auth2_save_mima').style.display='none';
		document.getElementById('div_auth2_save_mima').style.display='';
		document.getElementById('div_registration').style.display='none';
		return;
	}
	if(the_answer=='no')
	{
		document.getElementById('prompt_auth2_save_mima').style.display='';
		document.getElementById('div_auth2_save_mima').style.display='none';
		document.getElementById('div_registration').style.display='';
		return;
	}
	alert("The code should not run to here...in js function am_i_registered_user(the_answer)");
	return;
}

function count_the_text(monitored_field,text_left_div_name,maxlimit)
{
	var monitored_field_width=parseInt(monitored_field.offsetWidth);
	var cur_count=monitored_field.value.length;
	if(cur_count > maxlimit)
	{ 
		monitored_field.value = monitored_field.value.substring(0, maxlimit);
	}
	else
	{ 
		var percentage_used=parseInt(100*cur_count/maxlimit);
		var percentage_left=100-percentage_used;
		progress_ele=document.getElementById(text_left_div_name);
		var min_width=80;
		var useful_width=monitored_field_width-min_width;
		var display_width=min_width+parseInt((useful_width*percentage_used)/100);
		progress_ele.style.width=display_width+"px";
		progress_ele.innerHTML="还剩: "+(maxlimit-cur_count)+"个字。"
		// color correction on style from CCFFF -> CC0000
		//progress_ele.style['background-color']="rgb(80%,"+(percentage_left)+"%,"+(percentage_left)+"%)";
		//alert(progress_ele.style['background-color']);
		//setcolor(document.getElementById(text_left_div_name),percentage,"background-color");
	}
}

function on_singup_submit()
{
	//signup email
	var ele=get_element_by_id('reg_email');
	var email_str=ele.value;
	var email_format=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	if (!email_format.test(email_str))
		return submit_input_error(ele,"请填入真实有效的 Email");
	//password
	ele=get_element_by_id('reg_password');
	if(ele.value=='')
		return submit_input_error(ele,"您还没填入您的 Meetta 密码.");
	if(!is_alphanumeric(ele))
		return submit_input_error(ele,"密码只能是大小写英文字符和阿拉伯数字.");
	pwd_length=ele.value.length;
	if(pwd_length < 5 || pwd_length > 20)
		return submit_input_error(ele,"密码应该在5到20个字符长，您输入的密码长度为"+pwd_length+"个字符");
	if(document.getElementById("reg_password_c").value!=ele.value)
		return submit_input_error(ele,"您的确认密码和密码不同");
	//nickname
	ele=get_element_by_id('reg_nickname');
	if(ele.value=='')
		return submit_input_error(ele,"您还没填入您的 Meetta 昵称.");
	//location
	ele=get_element_by_id('txtown_location');
	if(ele.value=='0')
	{
		alert("您的所在省（市）？");
		ele.focus();//can't call ele.select cause it's for input box only
		return false;
	}
	ele=get_element_by_id('txtown_sublocation');
	if(ele.value=='0')
	{
		alert("您的所在城市（区）还不完整？");
		ele.focus();//can't call ele.select cause it's for input box only
		return false;
	}
	//height
	ele=get_element_by_id('reg_height');
	if(ele.value=='')
		return submit_input_error(ele,"您还没填入您的身高.");
	else if(must_be_int_between('reg_height',130,230)==false)
		return false;
	//marital status
	ele=get_element_by_id('reg_marital');
	if(ele.value=='0')
	{
		alert("您的婚姻状态?");
		ele.focus();//can't call ele.select cause it's for input box only
		return false;
	}
	//annual salary
	ele=get_element_by_id('txtsalary');
	if(ele.value=='0')
	{
		alert("您的目前年薪?");
		ele.focus();//can't call ele.select cause it's for input box only
		return false;
	}
	//education
	ele=get_element_by_id('txteducation');
	if(ele.value=='0')
	{
		alert("您的最高学历?");
		ele.focus();//can't call ele.select cause it's for input box only
		return false;
	}
	//spam code
	ele=get_element_by_id('spam_code');
	if(ele.value=='')
	{
		alert("请输入验证码。");
		ele.focus();//can't call ele.select cause it's for input box only
		return false;
	}
	//accept terms
	ele=get_element_by_id('reg_accept');
	if(!ele.checked)
	{
		alert("请同意遵守会员服务条款*。");
		ele.focus();//can't call ele.select cause it's for input box only
		return false;
	}
	return true;
}

function submit_input_error(ele,msg)
{
	ele.focus();
	ele.select();
	alert(msg);
	return false;
}
function get_element_by_id(element_name)
{
	the_element=document.getElementById(element_name);
	if(the_element==null)
	{
		alert("can not find element ["+element_name+"] in the html");
		return false;
	}
	return the_element;
}

