/* In The Name of Allah, The Most Gracious, The Most Merciful */
// General.js
// Version 6.1
//------------------------------------------------------------------------------------------------------------
function SetScreen()
{
	if (TD = document.getElementById("tdForm"))
	{
		ScreenWidth = screen.width;
		ScreenHeight = screen.height;
		if (ScreenWidth >= 1024)
			TD.height = "350";
	}
}
//------------------------------------------------------------------------------------------------------------
function FormLoading()
{

	SetScreen();
	PageStyle = document.getElementById("lnkStyle");
	//CalendarStyle = document.getElementById("lnkCalendar");
	Scripts = document.getElementsByTagName("script");
	IsForm = false;
	for (var i = 0; i < Scripts.length; i++)
	{
		if (Scripts[i].src == "../js/form.js")
			IsForm = true;
	}
	if (IsForm)
	{
		//alert('hi2');
		SetSelectedData();
		if (document.getElementById("tblTable").dir == "rtl")
		{
			SetDirection("rtl");
			if (document.title == "")
				document.title = "سيستم مديريت محتواي پروانه";
			//PageStyle.href = "../css/style_rtl.css";
		}
		else if (document.getElementById("tblTable").dir == "ltr")
		{
			SetDirection("ltr");
			if (document.title == "")
				document.title = "Butterfly CMS";
			//PageStyle.href = "../css/style_ltr.css";
		}
		if (Save = document.getElementById("btnSave"))
		{
			if (Save.onclick == null)
				Save.onclick = FormSubmit;
		}
		
	}

	if (((typeof FormLoading_) !== 'undefined' ) && FormLoading_)
	{
		FormLoading_();
	}
	else
	{
	}
}
//------------------------------------------------------------------------------------------------------------
function FormSubmit(FormID)
{
	Form = GetInfo();
	if (!Form)
	{
		if (FormID)
			Form = FormID;
		else
			Form = document.forms[0];
	}
	if (FormValidate(Form.id))
	{
		Form.submit();
	}
}
//------------------------------------------------------------------------------------------------------------
function GoTo(URL)
{
	window.location = URL;
	//document.forms[0].action = URL;
	//document.forms[0].submit();
}
//------------------------------------------------------------------------------------------------------------
function GoToNew(URL)
{
	var NewWindow = window.open(URL);
	//NewWindow.location = URL;
}
//------------------------------------------------------------------------------------------------------------
function GoToNewBlank(URL)
{
	var NewWindow = window.open(URL, "", "left=40,top=30,width=800,height=600,status=1,scrollbars=1,menubar=0,toolbar=0,resizable=0");
}

function NewWindow(URL, Target, Width, Height, Top, Left, Resizable, MenuBar, ScrollBars, ToolBar, Status)
{
	var StatusText = '';

	if (!(Target && Target.length > 0))
	{Target = null;}

	if (Width)
	{StatusText += (StatusText.length > 0 ? ',width=' : 'width=' ) + Width;}
	else
	{StatusText += (StatusText.length > 0 ? ',width=800' : 'width=600' );}

	if (Height)
	{StatusText += (StatusText.length > 0 ? ',height=' : 'height=' ) + Height;}
	else
	{StatusText += (StatusText.length > 0 ? ',height=600' : 'height=600' );}

	if (Top)
	{StatusText += (StatusText.length > 0 ? ',top=' : 'top=' ) + Top;}
	else
	{StatusText += (StatusText.length > 0 ? ',top=30' : 'top=30' );}

	if (Left)
	{StatusText += (StatusText.length > 0 ? ',left=' : 'left=' ) + Left;}
	else
	{StatusText += (StatusText.length > 0 ? ',left=40' : 'left=40' );}

	if (Resizable)
	{StatusText += (StatusText.length > 0 ? ',resizable=' : 'resizable=' ) + Resizable;}
	else
	{StatusText += (StatusText.length > 0 ? ',resizable=yes' : 'resizable=yes' );}

	if (MenuBar)
	{StatusText += (StatusText.length > 0 ? ',menubar=' : 'menubar=' ) + MenuBar;}
	else
	{StatusText += (StatusText.length > 0 ? ',menubar=no' : 'menubar=no' );}

	if (ScrollBars)
	{StatusText += (StatusText.length > 0 ? ',scrollbars=' : 'scrollbars=' ) + ScrollBars;}
	else
	{StatusText += (StatusText.length > 0 ? ',scrollbars=yes' : 'scrollbars=yes' );}

	if (ToolBar)
	{StatusText += (StatusText.length > 0 ? ',toolbar=' : 'toolbar=' ) + ToolBar;}
	else
	{StatusText += (StatusText.length > 0 ? ',toolbar=no' : 'toolbar=no' );}

	if (Status)
	{StatusText += (StatusText.length > 0 ? ',status=' : 'status=' ) + Status;}
	else
	{StatusText += (StatusText.length > 0 ? ',status=no' : 'status=no' );}

	var NewWindow_ = window.open(URL, Target, StatusText);
}

//------------------------------------------------------------------------------------------------------------
function Add(Name)
{
	//window.location = "index.php?Page="+Name+"&Mode=NEW";
	document.forms[0].action = "index.php?Page="+Name+"&Mode=NEW";
	document.forms[0].submit();
}
//------------------------------------------------------------------------------------------------------------
function Edit(Name)
{
	var Element = event.srcElement;
	TD = Element.parentElement;
	TR = TD.parentElement;
	//window.location = "index.php?Page="+Name+"&Mode=EDIT&UID="+TR.id;
	document.forms[0].action = "index.php?Page="+Name+"&Mode=EDIT&UID="+TR.id;
	document.forms[0].submit();
}
//------------------------------------------------------------------------------------------------------------
function Edit_InOtherLanguage(Name)
{
	var Element = event.srcElement;
	TD = Element.parentElement;
	TR = TD.parentElement;
	if (Element.id == "")
		document.forms[0].action = "index.php?Page="+Name+"&Mode=NEW&ID="+TR.id+"&Language="+TD.id;
	else
		document.forms[0].action = "index.php?Page="+Name+"&Mode=EDIT&UID="+Element.id+"&ID="+TR.id+"&Language="+TD.id;
	document.forms[0].submit();
}
//------------------------------------------------------------------------------------------------------------
function MoveTableRow(Direction)
{	
	var Element = event.srcElement;
	TD = Element.parentElement;
	TR = TD.parentElement;
	TBody = TR.parentElement;
	if ((NewTR = TBody.rows[TR.rowIndex + Direction]) && (TR.rowIndex + Direction) > 0)
	{
		TR.swapNode(NewTR);
	}
}
//------------------------------------------------------------------------------------------------------------
function FormInfo()
{
	string = "  :  ( tagName ) ( type ) ( name ) ( id ) ( className ) \n";
	for (i = 0; i < document.forms[0].elements.length; i++)
	{
		string += i + " : ";
		string += " ( " + document.forms[0].elements[i].tagName + " ) ";
		string += " ( " + document.forms[0].elements[i].type + " ) ";
		string += " ( " + document.forms[0].elements[i].name + " ) ";
		string += " ( " + document.forms[0].elements[i].id + " ) ";
		string += " ( " + document.forms[0].elements[i].className + " ) ";
		string += "\n";
	}
	//alert(string);
	w = window.open();
	w.document.write("<pre>" + string + "</pre>");
}
//------------------------------------------------------------------------------------------------------------
function FormInfoTable()
{
	W = window.open();
	Table = W.document.createElement("table");
	Table.align = "center";
	Table.border = "1";
	Table.borderColor = "#990000";
	TR = Table.insertRow();
	TD = TR.insertCell();
	TD.innerHTML = "&nbsp;";
	TD = TR.insertCell();
	TD.innerHTML = "tagName";
	TD = TR.insertCell();
	TD.innerHTML = "type";
	TD = TR.insertCell();
	TD.innerHTML = "name";
	TD = TR.insertCell();
	TD.innerHTML = "id";
	TD = TR.insertCell();
	TD.innerHTML = "className";
	for (i = 0; i < document.forms[0].elements.length; i++)
	{
		TR = Table.insertRow();
		TD = TR.insertCell();
		TD.innerHTML = i;
		TD = TR.insertCell();
		TD.innerHTML = document.forms[0].elements[i].tagName;
		TD = TR.insertCell();
		TD.innerHTML = document.forms[0].elements[i].type;
		TD = TR.insertCell();
		TD.innerHTML = document.forms[0].elements[i].name;
		TD = TR.insertCell();
		TD.innerHTML = document.forms[0].elements[i].id;
		TD = TR.insertCell();
		TD.innerHTML = document.forms[0].elements[i].className;
	}
	W.document.body.appendChild(Table);
}
//------------------------------------------------------------------------------------------------------------
function ShowHide(Element)
{
	if (Element.currentStyle.visibility == "hidden")
		Element.style.visibility = "visible";
	else if (Element.currentStyle.visibility == "visible")
		Element.style.visibility = "hidden";
}
//------------------------------------------------------------------------------------------------------------
function trim(str)
{
	if (typeof(str) == "string")
		return str.replace(/^\s*|\s*$/,"");
//	return str.replace(/(^ +| +$)/, "");
}
//------------------------------------------------------------------------------------------------------------
function Is_String(Value)
{
	var RegExpPattern = /./;
	return RegExpPattern.test(Value);
}
function Is_EnString(Value)
{
	var RegExpPattern = /\w+/;
	return RegExpPattern.test(Value);
}
function Is_FaString(Value)
{
	var RegExpPattern = /./;
	return true;
}
function Is_Name(Value)
{
	var RegExpPattern = /./;
	return RegExpPattern.test(Value);
}
function Is_Number(Value)
{
	var RegExpPattern = /\d+/;
	return RegExpPattern.test(Value);
}
function Is_Username(Value)
{
	var RegExpPattern = /./;
	return RegExpPattern.test(Value);
}
function Is_Password(Value)
{
	var RegExpPattern = /./;
	return RegExpPattern.test(Value);
}
function Is_Email(Value)
{
	//var RegExpPattern = /^[\w-\.\']{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,}$/;
	var RegExpPattern = /^[\w-\.\']{1,}\@([\d0-9a-zA-Z-_]{1,}\.){1,}[\d0-9a-zA-Z-_]{2,}$/;
	return RegExpPattern.test(Value);
}
function Is_URL(Value)
{
	var RegExpPattern = /./;
	//var RegExpPattern = /^[\w-\.\']{1,}\:\/\/([\d0-9a-zA-Z-_.&?;%]*)$/;
	return RegExpPattern.test(Value);
}
function Is_PhoneNumber(Value)
{
	var RegExpPattern = /\d+/;
	return RegExpPattern.test(Value);
}
function Is_Age(Value)
{
	var RegExpPattern = /./;
	return RegExpPattern.test(Value);
}
function Is_Date(Value)
{
	var RegExpPattern = /./;
	return RegExpPattern.test(Value);
}
function Is_Year(Value)
{
	var RegExpPattern = /./;
	return RegExpPattern.test(Value);
}
function Is_Month(Value)
{
	var RegExpPattern = /./;
	return RegExpPattern.test(Value);
}
function Is_Day(Value)
{
	var RegExpPattern = /./;
	return RegExpPattern.test(Value);
}
function Is_Time(Value)
{
	var RegExpPattern = /./;
	return RegExpPattern.test(Value);
}
function Is_Houre(Value)
{
	var RegExpPattern = /./;
	return RegExpPattern.test(Value);
}
function Is_Minute(Value)
{
	var RegExpPattern = /./;
	return RegExpPattern.test(Value);
}
function Is_Second(Value)
{
	var RegExpPattern = /./;
	return RegExpPattern.test(Value);
}
//------------------------------------------------------------------------------------------------------------
function Validate(Value, Type)
{
	Value = trim(Value);
	if (Value)
	{
		switch(Type)
		{
			case "STRING":
				if(!Is_String(Value))
				{
					return false;
				}
				break;
			case "En_STRING":
				if(!Is_EnString(Value))
				{
					return false;
				}
				break;
			case "Fa_STRING":
				if(!Is_FaString(Value))
				{
					return false;
				}
				break;
			case "NAME":
				if(!Is_Name(Value))
				{
					return false;
				}
				break;
			case "USERNAME":
				if(!Is_Username(Value))
				{
					return false;
				}
				break;
			case "PASSWORD":
				if(!Is_Password(Value))
				{
					return false;
				}
				break;
			case "EMAIL":
				if(!Is_Email(Value))
				{
					return false;
				}
				break;
			case "URL":
				if(!Is_URL(Value))
				{
					return false;
				}
				break;
			case "NUMBER":
				if(!Is_Number(Value))
				{
					return false;
				}
				break;
			case "PHONE_NUMBER":
				if(!Is_PhoneNumber(Value))
				{
					return false;
				}
				break;
			case "AGE":
				if(!Is_Age(Value))
				{
					return false;
				}
				break;
			case "DATE":
				if(!Is_Date(Value))
				{
					return false;
				}
				break;
			case "YEAR":
				if(!Is_Year(Value))
				{
					return false;
				}
				break;
			case "MONTH":
				if(!Is_Month(Value))
				{
					return false;
				}
				break;
			case "DAY":
				if(!Is_Day(Value))
				{
					return false;
				}
				break;
			case "TIME":
				if(!Is_Time(Value))
				{
					return false;
				}
				break;
			case "HOUR":
				if(!Is_Houre(Value))
				{
					return false;
				}
				break;
			case "MINUTE":
				if(!Is_Minute(Value))
				{
					return false;
				}
				break;
			case "SECOND":
				if(!Is_Second(Value))
				{
					return false;
				}
				break;
		}
		return true;
	}
	else
		return false;
}
//------------------------------------------------------------------------------------------------------------
