/*-------------------------------------------------------------------------------------
Date: 17/08/2006
Author: ThangVQ
File: checkImage.js
Purpose: check all text field in the form
Change: first create
-------------------------------------------------------------------------------------*/

function checklength(value, maxlength)
{
	//alert(value.length + " " + maxlength);
 if (value.length > maxlength)
 {
  return false;
 }
 else
 {
  return true;
 }
}
function checkvalue(value, maxvalue)
{
 if (value > maxvalue)
 {
  return false;
 }
 else
 {
  return true;
 }
}
function isNull(value)
{
 if (value == "")
 {
  return true;
 }
 else
 {
  return false;
 }
}
function checkchar(value)
{
 var illegalChars = /[\(\)\<\>\,\!\#\$\%\^|&\*\;\:\ \\\"\'\?\`\~\[\]\]]/;

 if (value.match(illegalChars))
 {
	
  return false;
 }
 else
 {
  return true;
 }
}
function isEmail(value, maxlength)
{
 if (isNull(value))
 {
  return "null";
 }
 else if (!checkchar(
               value) || value.indexOf(
                             '@') < 1 || value.indexOf(
                                             '.') < 1 || value.lastIndexOf(
                                                             '@') > value.lastIndexOf(
                                                                        '.') || value.indexOf('.') == value.length - 1)
 {
  return false;
 }
 else if (!checklength(value, maxlength))
 {
  return "long";
 }
 else
 {
  return true;
 }
}
function isText(value, maxlength)
{
 var illegalChars = /[\(\)\<\>\#\$\%\^\&\*\;\:\\\`\~\[\]\]]/;

 if (isNull(value))
 {
  return "null";
 }
 else if (!checklength(value, maxlength))
 {
  return "long";
 }
 else if (value.match(illegalChars))
 {
  return false;
 }
 else
 {
  return true;
 }
}
function isPhone(value, maxlength)
{
 var stripped = value.replace(/[\(\)\.\-\ ]/g, ''); //strip out acceptable non-numeric characters

 if (isNull(value))
 {
  return "null";
 }
 else if (isNaN(stripped))
 {
  return false;
 }
 else if (!checklength(value, maxlength))
 {
  return "long";
 }
 else
 {
  return true;
 }
}
function isNumber(value, maxvalue)
{
 if (isNull(value))
 {
  return "null";
 }
 else if (isNaN(value) || !checkvalue(value, maxvalue))
 {
  return false;
 }
 else
 {
  return true;
 }
}
function isDate(value)
{
 var cur_date = new Date();
 var current = cur_date.getYear() * 10000 + (cur_date.getMonth() + 1) * 100 + cur_date.getDate();

 var year = value.substr(0, 4);
 var month = value.substr(5, 2);
 var day = value.substr(8, 2);
 var date = new Date(year, month, day);
 var date_num = date.getYear() * 10000 + (date.getMonth()) * 100 + date.getDate();

 if (isNull(value))
 {
  return "null";
 }
 else if (value.length != 10 || isNaN(date_num))
 {
  return false;
 }
 else if (date_num > current)
 {
  return "bigger";
 }
 else if (date_num == current)
 {
  return "equal";
 }
 else
 {
  return "smaller";
 }
}
function isFile(value)
{
 if (isNull(value))
 {
  return "null";
 }
 else if (value.substring(value.length - 4, value.length).toLowerCase() != ".jpg" && value.substring(value.length - 4, value.length).toLowerCase() != ".gif")
 {
  return "notimg";
 }
 else
 {
  return true;
 }
}
/*--------------------------------------------------------------------------------------------
Date: 17/08/2066
Author: ThangVQ
Function: checkText()
Input: three array: arr_field contains text_field_name in the form
                    field_type contains text_field_type. They're: text, phone, email, number
                    field_attr contains text_field_attribute. They're: maxlength or maxvalue (for
                    number field).
Output: one array: arr_result contains boolean values or a String value "null" if this field is null.
"long" if too long.
Purpose: check all text fields in the form.
---------------------------------------------------------------------------------------------*/
function checkText(arr_field, field_type, field_attr)
{
 var i = 0;
 var arr_result = new Array();

 for (i = 0; i < arr_field.length; i++)
 {
	 
  switch (field_type[i])
  {
   case "text":
    arr_result[i] = isText(arr_field[i].value, field_attr[i]);

    break;

   case "phone":
    arr_result[i] = isPhone(arr_field[i].value, field_attr[i]);

    break;

   case "email":
    arr_result[i] = isEmail(arr_field[i].value, field_attr[i]);

    break;
	
	case "number":
    arr_result[i] = isNumber(arr_field[i].value, field_attr[i]);

    break;

   case "date":
    arr_result[i] = isDate(arr_field[i].value);

    break;

   case "file":
    arr_result[i] = isFile(arr_field[i].value);

    break;
	//truong hop kiem tra la website
   case "website":
    arr_result[i] = isUrl(arr_field[i].value, field_attr[i]);

    break;	 

   default:
    arr_result[i] = true;
  }
 }

 return arr_result;
}
//phuong thuc check website

function isUrl(value,maxlength) {
	//alert(value);
	if(value>maxlength)
		return 'long';
	if(value=='')
		return 'null';		
	var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
	return regexp.test(value);
}

