﻿var __EnterValue        = "لطفا xxx را وارد کنید";
var __StringValueError  = "لطفا حداقل xxx و حداکثر yyy حرف وارد کنید";
var __NumberValueError  = "لطفا عددی بین xxx و yyy  وارد کنید";
var __MustBeNumber      = "بایستی عدد وارد کنید";
var __EmailInvalid      = "آدرس ایمیل نادرست است";
var __URLInvalid        = "آدرس xxx نادرست است";
var __SNInvalid         = "مقدار xxx نادرست است";
var __ScoreInvalid      = "لطفا عدد نمره xxx را درست وارد کنيد";
var editWindow          = null;
var __ControlError      = "Control xxx Not Found.";
var __CheckBoxListError = "لطفا از گزينه هاي xxx حداقل يک مورد را انتخاب کنید";
var __OnlyEnglishError  = "لطفا فقط از حروف انگلیسی یا اعداد برای xxx استفاده کنید";

function VTE(ctrl, min, max, type, title)
{
    //Validate Control Data for NULL, EMPTY and LENGHT
    obj=document.getElementById(ctrl);
    if (obj == null)
    {
        alert(__ControlError.replace("xxx",ctrl));
        return false;
    }
	result = true;
	if (type=="N")
	    result=TestNumber(obj, min, max, title, true);
    if (type=="S")
	    result=TestString(obj, min, max, title, true);
    if (type=="E")
	    result=TestEmail(obj, min, max, title, true);
    if (type=="W")
	    result=TestURL(obj, min, max, title, true);
    if (type=="SN")
	    result=TestStringNumber(obj, min, max, title, true);
    if (type=="SC")
	    result=TestScore(obj, min, max, title, true);
	return result;
}
function VT(ctrl, min, max, type, title)
{
    //Validate Control Data for NULL, EMPTY and LENGHT
    obj=document.getElementById(ctrl);
    if (obj == null)
    {
        alert(__ControlError.replace("xxx",ctrl));
        return false;
    }
	result = true;
	if (type=="N")
	    result=TestNumber(obj, min, max, title, false);
    if (type=="S")
	    result=TestString(obj, min, max, title, false);
    if (type=="E")
	    result=TestEmail(obj, min, max, title, false);
    if (type=="W")
	    result=TestURL(obj, min, max, title, false);
    if (type=="SN")
	    result=TestStringNumber(obj, min, max, title, false);
    if (type=="SC")
	    result=TestScore(obj, min, max, title, true);
	return result;
}
function EQ(ctrl1, ctrl2, msg)
{
    // If both control data was equal return true
    obj1=document.getElementById(ctrl1);
    obj2=document.getElementById(ctrl2);
    if ((obj1==null) || (obj2==null))
        return false;
	result = (obj1.value == obj2.value);
	if (!result)
	{
	    obj2.value = "";
	    obj1.value = "";
	    obj1.focus();
        alert(msg);
    }
	return result;
}
function TestImage(imageCtrl, checkboxCtrl)
{
    var imageObj = document.getElementById(imageCtrl);
    if (imageObj == null)
    {
        alert(__ControlError.replace("xxx",imageCtrl));
        return false;
    }
    var checkObj = document.getElementById(checkboxCtrl);
    if (checkObj == null)
    {
        alert(__ControlError.replace("xxx", checkboxCtrl));
        return false;
    }
    if (imageObj.value != "")
        checkObj.checked = true;
    return true;
}
function LN(ctrl)
{
    //Return lenght of control data
    obj = document.getElementById(ctrl);
    if (obj == null)
        return 0;
	return obj.value.length;
}
function BN2(ctrl1, ctrl2)
{
    // If at least one control was NULL return -1
    // If both controls were empty return 0
    // otherwise return 1
    obj1=document.getElementById(ctrl1);
    obj2=document.getElementById(ctrl2);
    if ((obj1 == null) || (obj2 == null))
        return -1;
    else if ((obj1.value == "") && (obj2.value == ""))
        return 0;
    else
        return 1;
}
function BN3(ctrl1, ctrl2, ctrl3)
{
    // If at least one control was NULL return -1
    // If all controls were empty return 0
    // otherwise return 1
    obj1 = document.getElementById(ctrl1);
    obj2 = document.getElementById(ctrl2);
    obj3 = document.getElementById(ctrl3);
    if ((obj1 == null) || (obj2 == null) || (obj3 == null))
        return -1;
    else if ((obj1.value == "") && (obj2.value == "") && (obj3.value == ""))
        return 0;
    else
        return 1;
}
function TestNumber(obj, minValue, maxValue, title, canEmpty)
{
    // Validate Number control data
    if ((obj.value=="") && (canEmpty))
        return true;

    if ((obj.value=="") && (minValue!=""))
    {
        alert(__EnterValue.replace("xxx",title));
        obj.focus();
        return false;
    }

    if ((obj.value/1) != obj.value)
    {
        alert(__MustBeNumber);
        obj.value="";
        obj.focus();
        return false;
    }

    num = parseInt(obj.value);
    if (minValue != maxValue)
    {
        if ((num<minValue) || (num>maxValue))
        {
            __NumberValueError = __NumberValueError.replace("xxx",minValue);
            __NumberValueError = __NumberValueError.replace("yyy",maxValue);
            alert(__NumberValueError);
            obj.value="";
            obj.focus();
            return false;
        }
    }
    return true;
}
function TestScore(obj, minValue, maxValue, title, canEmpty)
{
    // Validate Number control data
    if ((obj.value=="") && (canEmpty))
        return true;
    if ((obj.value=="") && (minValue!=""))
    {
        alert(__EnterValue.replace("xxx",title));
        obj.focus();
        return false;
    }
    if ((obj.value/1) != obj.value)
    {
        alert(__MustBeNumber);
        obj.value="";
        obj.focus();
        return false;
    }
    num = parseFloat(obj.value);
    if (minValue != maxValue)
    {
        if ((num<minValue) || (num>maxValue))
        {
            __NumberValueError = __NumberValueError.replace("xxx",minValue);
            __NumberValueError = __NumberValueError.replace("yyy",maxValue);
            alert(__NumberValueError);
            obj.value="";
            obj.focus();
            return false;
        }
    }
    var regexpr = /(\d{0,2}\.\d{1,2})|(\d{0,2})/;
    ok=regexpr.test(obj.value);
    if (!ok)
    {
        alert(__ScoreInvalid.replace("xxx", title));
        obj.focus();
    }
    return true;
}
function TestString(obj, minLen, maxLen, title, canEmpty)
{
    // Validate Number control data
    if ((obj.value=="") && (canEmpty))
        return true;
    // Validate String control data
    if ((obj.value=="") && (minLen!=""))
    {
        alert(__EnterValue.replace("xxx", title));
        obj.focus();
        return false;
    }
    var str=obj.value;
    if (minLen != maxLen)
    {
        if ((str.length<minLen) || (str.length>maxLen))
        {
            __StringValueError=__StringValueError.replace("xxx",minLen);
            __StringValueError=__StringValueError.replace("yyy",maxLen);
            alert(__StringValueError);
            obj.focus();
            return false;
        }
    }
    return true;
}
function TestStringNumber(obj, minLen, maxLen, title, canEmpty)
{
    // Validate Number control data
    if ((obj.value=="") && (canEmpty))
        return true;
    // Validate String control data
    if ((obj.value=="") && (minLen!=""))
    {
        alert(__EnterValue.replace("xxx", title));
        obj.focus();
        return false;
    }
    var str=obj.value;
    if (minLen != maxLen)
    {
        if ((str.length<minLen) || (str.length>maxLen))
        {
            __StringValueError=__StringValueError.replace("xxx",minLen);
            __StringValueError=__StringValueError.replace("yyy",maxLen);
            alert(__StringValueError);
            obj.focus();
            return false;
        }
    }
    var regexpr = /([0-9]+)|([0-9]+\-*[0-9]+)/;
    ok=regexpr.test(str);
    if (!ok)
    {
        alert(__SNInvalid.replace("xxx", title));
        obj.focus();
    }
    return true;
}
function TestCheckBoxList(ctrl, title)
{
    var cnt = 0;
    for( index = 0; index < 1000; index++)
    {
        var chkObj = document.getElementById(ctrl + "_" + index);
        if (chkObj == null)
            break;
        if (chkObj.checked)
        {
            cnt++;
            break;
        }
    }
    if (cnt > 0 )
        return true;
    else
        alert(__CheckBoxListError.replace("xxx", title));
    return false;
}
function TestEmail(obj, minLen, maxLen, title, canEmpty)
{
    // Validate Number control data
    if ((obj.value=="") && (canEmpty))
        return true;
    // Validate String control data
    if ((obj.value=="") && (minLen!=""))
    {
        alert(__EnterValue.replace("xxx", title));
        obj.focus();
        return false;
    }
    var str=obj.value;
    if (minLen != maxLen)
    {
        if ((str.length<minLen) || (str.length>maxLen))
        {
            __StringValueError=__StringValueError.replace("xxx",minLen);
            __StringValueError=__StringValueError.replace("yyy",maxLen);
            alert(__StringValueError);
            obj.focus();
            return false;
        }
    }
    var regexpr = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
    ok=regexpr.test(str);
    if (!ok)
    {
        alert(__EmailInvalid);
        obj.focus();
    }
    return ok;
}
function TestURL(obj, minLen, maxLen, title, canEmpty)
{
    // Validate Number control data
    if ((obj.value=="") && (canEmpty))
        return true;
    // Validate String control data
    if ((obj.value=="") && (minLen!=""))
    {
        alert(__EnterValue.replace("xxx", title));
        obj.focus();
        return false;
    }
    var str=obj.value;
    if (minLen != maxLen)
    {
        if ((str.length<minLen) || (str.length>maxLen))
        {
            __StringValueError=__StringValueError.replace("xxx",minLen);
            __StringValueError=__StringValueError.replace("yyy",maxLen);
            alert(__StringValueError);
            obj.focus();
            return false;
        }
    }
    var regexpr = /(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&amp;:/~\+#]*[\w\-\@?^=%&amp;/~\+#])?/;
    ok=regexpr.test(str);
    if (!ok)
    {
        alert(__URLInvalid.replace("xxx", title));
        obj.focus();
    }
    return ok;
}
function TestEnglishString(ctrl, title)
{
    obj=document.getElementById(ctrl);
    if (obj == null)
    {
        alert(__ControlError.replace("xxx",ctrl));
        return false;
    }
	var regexpr = /[^a-zA-Z0-9-_]/;
    ok=regexpr.test(obj.value);
    if (ok)
    {
        alert(__OnlyEnglishError.replace("xxx", title));
        obj.focus();
    }
    return ok;
}
function OpenWindow(url, width, height)
{
	var options="channelmode=0,"+
		"directories=0,"+
		"height="+height+","+
		"left=10,"+
    	"top=10,"+
		"width="+width+","+
		"location=0,"+
		"menubar=0,"+
		"resizable=1,"+
		"scrollbars=1,"+
		"status=0,"+
		"titlebar=0,"+
		"toolbar=0"
	editWindow=document.open(url,"edit",options,true);
}
function ActiveEditor(obj)
{
	if (editWindow==null)
		OpenWindow();

	try
	{
		editWindow.focus();
	}
	catch(e)
	{
		OpenWindow();
		editWindow.focus();
	}

	while(editWindow.document.readyState != "complete")
		continue;
	editWindow.SetContents(obj);
}