﻿var alert_colors = new Array();
alert_colors[0] = "#FFFFFF";
alert_colors[1] = "#DD5533";
var alert_input     = "";
var old_tmp = "";

function enable_alert()
{
	window.setTimeout("change_color(3)", 400);
}

function change_color(Tmp)
{
	alert_input.style.backgroundColor = alert_colors[Tmp % 2];
	if(Tmp > 0)
		window.setTimeout("change_color(" + (Tmp-1) + ")", 400);
	else
		alert_input.focus();
}

function check_num(Tmp)
{
	var is_num;
	is_num = "0123456789";
	var subst;
	for(i = 0; i < Tmp.length; i++)
	{
		subst = Tmp.substring(i, i + 1);
		if(is_num.indexOf(subst) == -1)
			return false;
	}
	return true;
}

function check_flt(Tmp)
{
	var is_flt;
	is_flt = "0123456789.";
	var subst;
	for(i = 0; i < Tmp.length; i++)
	{
		subst = Tmp.substring(i, i + 1);
		if(is_flt.indexOf(subst) == -1)
			return false;
	}
	return true;
}

function check_name(Tmp)
{
	var is_alpha;
	is_alpha = "abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ اأإآبتثجحخدذرزسشصضطظعغفقكلمنهوؤيءئىة";
	var subst;
	for(i = 0; i < Tmp.length; i++)
	{
		subst = Tmp.substring(i, i + 1);
		if(is_alpha.indexOf(subst) == -1)
			return false;
	}
	return true;
}


function check_admin_name(Tmp)
{
	var is_alpha;
	is_alpha = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_0123456789";
	var subst;
	
	for(i = 0; i < Tmp.length; i++)
	{
		subst = Tmp.substring(i, i + 1);
		if(is_alpha.indexOf(subst) == -1)
			return false;
	}
	return true;
}

function check_name_en(Tmp)
{
	var is_alpha_en;
	is_alpha_en = "abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	var subst;
	for(i = 0; i < Tmp.length; i++)
	{
		subst = Tmp.substring(i, i + 1);
		if(is_alpha_en.indexOf(subst) == -1)
			return false;
	}
	return true;
}

function check_phone(Tmp)
{
	var is_phone;
	is_phone = "0123456789 -+()";
	var subst;
	for(i = 0; i < Tmp.length; i++)
	{
		subst = Tmp.substring(i, i + 1);
		if(is_phone.indexOf(subst) == -1)
			return false;
	}
	return true;
}

function check_email(Tmp)
{
	var index_at, index_dot, before_at, after_at;
	var is_alpha_dot = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_0123456789.";

	if (trim(Tmp) != "")
	{
		index_at = Tmp.indexOf("@");
		if ( index_at == -1)
			return false;
		before_at = Tmp.substring( 0, index_at - 1);
		Tmp = Tmp.substring(index_at + 1, Tmp.length);
		index_dot = Tmp.indexOf(".");
		if ( index_dot == -1)
			return false;
		after_at = Tmp.substring( 0, index_dot - 1);
		Tmp = Tmp.substring(index_dot + 1, Tmp.length);
		if ( Tmp.length == 0)
			return false;

		for(i = 0; i < before_at.length; i++)
		{
			subst = before_at.substring(i, i + 1);
			if(is_alpha_dot.indexOf(subst) == -1)
				return false;
		}

		for(i = 0; i < after_at.length; i++)
		{
			subst = after_at.substring(i, i + 1);
			if(is_alpha_dot.indexOf(subst) == -1)
				return false;
		}

		for(i = 0; i < Tmp.length; i++)
		{
			subst = Tmp.substring(i, i + 1);
			if(is_alpha_dot.indexOf(subst) == -1)
				return false;
		}

		return true;
	}
	return false;
}

function is_leap(YY)
{
	if(YY % 4 != 0)
		return false;
	else if( YY % 100 !=0)
		return true;
	else if( YY % 400 !=0)
		return false;
	else
		return true;
}

function days_in_month(MM, YY)
{
	if ( MM == 1)
		return 31;
	if ( MM == 3)
		return 31;
	if ( MM == 5)
		return 31;
	if ( MM == 7)
		return 31;
	if ( MM == 8)
		return 31;
	if ( MM == 10)
		return 31;
	if ( MM == 12)
		return 31;
	if ( MM == 4)
		return 30;
	if ( MM == 6)
		return 30;
	if ( MM == 9)
		return 30;
	if ( MM == 11)
		return 30;
	if ( MM == 2)
		if(is_leap(YY) == true)
			return 29;
		else
			return 28;
}

function check_date(Tmp)
{
	var q;
	var index;
	var DD;
	var MM;
	var YY;
	q = "\/";
	var MinYear;
	MinYear = 1900;
	var MaxYear;
	MaxYear = 2100;
	index = Tmp.indexOf(q);
	if(index < 1 || index > 2)
		return false;
	DD = Tmp.substring(0, index);
	Tmp = Tmp.substring(index+1, Tmp.length);
	index = Tmp.indexOf(q);
	if(index < 1 || index > 2)
		return false;
	MM = Tmp.substring(0, index);
	YY = Tmp.substring(index+1, Tmp.length);
	if(parseInt(YY) < 1900 || parseInt(YY) > 2100)
		return false;
	if(YY > MaxYear || YY < MinYear)
		return false;
	if(MM < 1 || MM > 12)
		return false;
	if(DD < 1 || DD > days_in_month(MM, YY))
		return false;
	return true;
}

function is_bigger(date1, date2)
{
	//returns
	// -3 error in second date
	// -2 error in first date
	// -1 first is smaller
	// 0 equal
	// 1 first is bigger

	var q;
	var index1, index2;
	var dd1, mm1, yy1, dd2, mm2, yy2;
	q = "\/";
	if ( check_date(date1) == false)
		return -2;
	if ( check_date(date2) == false)
		return -3;
	index1 = date1.indexOf(q);
	index2 = date2.indexOf(q);
	dd1 = date1.substring(0, index1);
	date1 = date1.substring(index1+1, date1.length);
	index1 = date1.indexOf(q);
	mm1 = date1.substring(0, index1);
	yy1 = date1.substring(index1+1, date1.length);
	dd2 = date2.substring(0, index2);
	date2 = date2.substring(index2+1, date2.length);
	index2 = date2.indexOf(q);
	mm2 = date2.substring(0, index2);
	yy2 = date2.substring(index2+1, date2.length);
	if ( yy1 > yy2)
		return 1;
	if ( yy2 > yy1)
		return -1;
	if ( mm1 > mm2)
		return 1;
	if ( mm2 > mm1)
		return -1;
	if ( dd1 > dd2)
		return 1;
	if ( dd2 > dd1)
		return -1;
	return 0;
}

function check_during(Tmp)
{
	var q;
	var index;
	//var DD;
	var MM;
	var YY;
	q = "\/";
	var MinYear;
	MinYear = 1900;
	var MaxYear;
	MaxYear = 2100;
	/*index = Tmp.indexOf(q);
	if(index < 1 || index > 2)
		return false;
	DD = Tmp.substring(0, index);
	Tmp = Tmp.substring(index+1, Tmp.length);*/
	index = Tmp.indexOf(q);
	if(index < 1 || index > 2)
		return false;
	MM = Tmp.substring(0, index);
	YY = Tmp.substring(index+1, Tmp.length);
	if(parseInt(YY) < 1900 || parseInt(YY) > 2100)
		return false;
	if(YY > MaxYear || YY < MinYear)
		return false;
	if(MM < 1 || MM > 12)
		return false;
	/*if(DD < 1 || DD > days_in_month(MM, YY))
		return false;*/
	return true;
}

function trim(value)
{
	return value.replace(/(^\s*)|(\s*$)/g, "");
}

function to_int(value)
{
	temp_val = "";
	is_digit = "0123456789";
	for(i = 0; i < value.length; i++)
	{
		if(is_digit.indexOf(value.charAt(i)) > -1)
			temp_val += value.charAt(i);
	}
	return temp_val;
}

function check_form(form,is_submit)
{
	
	for(j = 0; j < form.length; j++)
	{
		my_alt = form[j].alt + "_";

		if(my_alt == "")
			continue;

		my_alt = my_alt + "_";

		if (form[j].value != null)
		{
			my_val = trim(form[j].value);
		}

		my_type    = "";
		my_min_val = ""; my_max_val = ""; my_val_val = "";
		my_min_len = ""; my_max_len = ""; my_val_len = "";
		my_req     = "";
		result     = true;

		if(my_alt.indexOf("REQUIRE") >= 0 )
		{
			my_req = "yes";
			result = result && (my_val != "");
		}

		if(my_alt.indexOf("NUM") >= 0 )
		{
			my_type = "num";
			result = result && check_num(my_val);
		}
		else if(my_alt.indexOf("FLT") >= 0 )
		{
			my_type = "flt";
			result = result && check_flt(my_val);
		}
		else if(my_alt.indexOf("NAME") >= 0 )
		{
			my_type = "name";
			result = result && check_name(my_val);
		}
		else if(my_alt.indexOf("ADMIN") >= 0 )
		{
			
			my_type = "admin";
			result = result && check_admin_name(my_val);
		}
		else if(my_alt.indexOf("DATE") >= 0 )
		{
			my_type = "date";
			result = result && check_date(my_val);
		}
		else if(my_alt.indexOf("PHONE") >= 0 )
		{
			my_type = "phone";
			result = result && check_phone(my_val);
		}
		else if(my_alt.indexOf("EMAIL") >= 0 )
		{
			my_type = "email";
			result = result && check_email(my_val);
		}		

		if(my_alt.indexOf("LEN") >= 0 )
		{
			index_start = my_alt.indexOf("LEN");
			index_end   = my_alt.indexOf("_", index_start);
			index_2dots = my_alt.indexOf(":", index_start);
			if (index_2dots > index_end || index_2dots == -1)
			{
				my_val_len = my_alt.substring(index_start+3, index_end);
				result = result && (my_val.length == parseInt(my_val_len));
			}
			else
			{
				my_min_len = my_alt.substring(index_start+3, index_2dots);
				my_max_len = my_alt.substring(index_2dots+1, index_end);
				if(my_min_len != "")
					result = result && (my_val.length >= parseInt(my_min_len));
				if(my_max_len != "")
					result = result && (my_val.length <= parseInt(my_max_len));
			}
		}

		if(my_alt.indexOf("VAL") >= 0 )
		{
			index_start = my_alt.indexOf("VAL");
			index_end   = my_alt.indexOf("_", index_start);
			index_2dots = my_alt.indexOf(":", index_start);
			if (index_2dots > index_end || index_2dots == -1)
			{
				my_val_val = my_alt.substring(index_start+3, index_end);
				result = result && (parseInt(my_val) == parseInt(my_val_val));
			}
			else
			{
				my_min_val = my_alt.substring(index_start+3, index_2dots);
				my_max_val = my_alt.substring(index_2dots+1, index_end);
				if (my_min_val != "")
					result = result && (parseInt(my_val) >= parseInt(my_min_val));
				if (my_max_val != "")
					result = result && (parseInt(my_val) <= parseInt(my_max_val));
			}
		}

		if(result == false)
		{
			alert_input = form[j];
			enable_alert();

			return result;
		}
	}

	if (is_submit == true)
	{
		form.submit();
	}
	else
		return true;
}

function warning(form)
{
	if(document.getElementById('job').value=="delete")
	{
		var truthBeTold = window.confirm("Are you sure you  want to delete this record ?");
		if (truthBeTold)
		{
			
			document.getElementById(form).submit();
		}
		else
		{
			return false;
		}
	}
	else
	{	
		/*
		document.getElementById('name_ar_'+form).alt='REQUIRE' ;
		document.getElementById('name_en_'+form).alt='REQUIRE' ;
		document.getElementById('web_'+form).alt='REQUIRE' ;
		document.getElementById('order_by_'+form).alt='NUMBER' ;
	*/
		check_form(document.getElementById(form),true);
		/*
		document.getElementById('name_ar_'+form).alt='' ;
		document.getElementById('name_en_'+form).alt='' ;
		document.getElementById('web_'+form).alt='' ;
		document.getElementById('order_by_'+form).alt='' ;
	*/	
	
	}

}

function submit_on_enter(form)
{
	if ((event.which && event.which == 13) || (event.keyCode && event.keyCode == 13))
    {
		check_form(document.getElementById(form),true) ;
	} 
    else return true;

}

function check_confirm()
{
	var x=(document.getElementById("user_password").value == document.getElementById("re-password").value);
	return x;
}
