/*********************************************************
 Software Develop & design Tools System file
 VINER V 1.0.00 - New Project
 Copyright 2001-20003 www.Viner.com
 **********************************************************/

// Check Null
function ckNull(value){
	if(value.length==0){
		alert(document.msg.msg0.value);
		return true;
	}else
		return false;
}

// Distill different attributes from a whole string
function distillField(formobj, value){
	beginPos = 0;
	seperatorPos = "";
	strLen = value.length;
	while( seperatorPos!=-1 && seperatorPos<strLen){
		seperatorPos = value.indexOf("&");
		if( seperatorPos==-1 ){
			seperatorPos = strLen;
		}
		param = value.substring(beginPos, seperatorPos);
		equalPos = param.indexOf("=");
		paramName = param.substring(beginPos, equalPos);
		paramValue = param.substring((equalPos+1), seperatorPos);
		switch (paramName){
			case "REQ_COR_SER_NO":
				formobj.REQ_COR_SER_NO.value = paramValue;
				break;
			case "COR_SER_NO":
				formobj.COR_SER_NO.value = paramValue;
				break;
			case "FC_FLAG":
				formobj.FC_FLAG.value = paramValue;
				break;
			case "IO_FLAG":
				formobj.IO_FLAG.value = paramValue;
				break;				
			case "REC_ORG_ID":
				formobj.REC_ORG_ID.value = paramValue;
				break;
			case "STATUS":
				formobj.STATUS.value = paramValue;
				break;
			case "CAT_CODE":
				formobj.CAT_CODE.value = paramValue;
				break;				
			case "REQ_REQ_NO":
				formobj.REQ_NO.value = paramValue;
				break;					
		}
		value = value.substring((seperatorPos+1), strLen);
	}
}

// Detect input argument is number? input = String
function isNumberInt(In_Str)
{
	StrLen=In_Str.length;
	var	Ret_Value = true;
	for (i=0; i<StrLen; i++)
	{
		FirstCha = escape(In_Str.charAt(i));
		if ((FirstCha < "0") || (FirstCha > "9"))
		{
			return 'data error';
		}
	  		
	}
	if(parseInt(In_Str) < 0)
	{
		return 'data error';
	}
	if(parseInt(In_Str) > 999999999)
	{

		return 'data error';
	}
	return '';
}

function isDecimal(In_Str)
{
	StrLen=In_Str.length;
	var	Ret_Value = true;
	var	Float_Value;
	var	Str_Float_Value;

	if (isNaN(In_Str) == true)
	{
		return false;
	}
	if(parseFloat(In_Str) < 0)
	{
		return 'data error';
	}
	if(parseFloat(In_Str) > 9999999)
	{
		return 'data error';
	}
	return '';
}

function isValidString(s)
{
 	var errorChar;
	var badChar = "^";
	
	//var badChar = "\'\"^&|][{}=+()*!@#^<>~`"; 
	
 	if (isEmpty(s))
 	{
 		return '';
 	}
	//is s contain invalid characters
	//Validate the user name
	errorChar = isCharsInBagEx( s, badChar)
    if (errorChar == false )
	{
		return 'Dot input this Char: ' + badChar ;
	} 	
	return '';
}


function isValidString_Width(s)
{
 	var errorChar;
	var badChar = "^&|][+*#^~`";
	
	
	
 	if (isEmpty(s))
 	{
 		return '';
 	}
	//is s contain invalid characters
	//Validate the user name
	errorChar = isCharsInBagEx( s, badChar)
    if (errorChar == false )
	{
		return ' ' + badChar ;
	} 	
	return '';
}

function isCharsInBagEx (s, bag)
{  
  var i,c;
  // Search through string's characters one by one.
  // If character is in bag, append to returnString.
  for (i = 0; i < s.length; i++)
  {   
	    c = s.charAt(i);
		if (bag.indexOf(c) > -1)
		{
	        return false;
	    }
  }
  return true;
}



function ck_Length(Maxlength, value){

	len = 0;
	str = "";

	valLen = value.length;
	
	if(valLen==0){
		return true;
	}
	
	// change "\'" to "\бо"(Chinese)
	for(i=0;i<valLen;i++)
	{
		char=escape(value.charAt(i));
		if(char=="%27")
		{
			str+=unescape("%u2018");
		}
		else
			str+=value.charAt(i);
		if(char=="%22")
		{
			str+=unescape("%u201c");
		}
		else
			str+=value.charAt(i);
		//
		if(char.length==6 || char=="%27" || char=="%22")
		{
			len+=2;
		}
		else
			len++;
	}
	//
	if(len<=Maxlength)
	{
		return str;

	}
	else
		return false;
}

function ck_Type(Type, value)
{
	switch(Type.toUpperCase())
	{
		case "DECIMAL":
			result = isDecimal(value);
			break;
		case "INTEGER":
			result = isNumberInt(value);
			break;
		case "STRING":
			result = isValidString(value);
			break;
		case "DATE":
			result = Validate_ymd(value);
			break;
	}
	return result;
}

function ck_Type_Width(Type, value)
{
	switch(Type.toUpperCase())
	{
		case "DECIMAL":
			result = isDecimal(value);
			break;
		case "INTEGER":
			result = isNumberInt(value);
			break;
		case "STRING":
			result = isValidString_Width(value);
			break;
		case "DATE":
			result = Validate_ymd(value);
			break;
	}
	return result;
}

function Check_Field(Field_name,Field_Type,Field_value,can_null,Field_length,Filed_FalseOutStr)
{
	var	ck_type_ret="";

	if(can_null.toString().toUpperCase() =="FALSE" && isEmpty(Field_value) )
	{ 
		alert(Filed_FalseOutStr); 
	 	Field_name.focus(); 
	 	return false; 
	}
	if(!ck_Length(Field_length, Field_value))
	{ 
		alert('It is too long for'  + Field_length + 'char,' +  Filed_FalseOutStr); 
	 	Field_name.focus(); 
	 	return false; 
	}
	ck_type_ret = ck_Type(Field_Type, Field_value);
	
	if( ck_type_ret != '')
	{ 
		alert('The Data have invalid char.' +  Filed_FalseOutStr); 
	 	Field_name.focus(); 
	 	return false; 
	}
	//trimSpace(Field_name, Field_value); 
	//DelReturn(Field_name, Field_value);
	return true;
}





function isEmpty(s)
{  
	return ((s == null) || (s.length == 0))
}

function DelReturn(Field, Str_Value)
{

	var 	Temp_Str = escape(Str_Value);
	var	new_repexp = /%0D%0A/g;
	Str_Value = Temp_Str.replace(new_repexp,escape(''));
	Str_Value = unescape(Str_Value);
	Field.value = Str_Value;
	
}

function trimSpace(Field, Str_Value){
	strLen = Str_Value.length;
	spaceLen = 0;
	strResult = "";
	// Left Trim
	for(loopxxx=0; loopxxx<strLen; loopxxx++){
		if( escape(Str_Value.charAt(loopxxx))=="%20" ){
			spaceLen++;
		}else{
			break;
		}
	}
	strResult = Str_Value.substring(spaceLen, strLen);
	// Right Trim
	spaceLen = 0;
	strLen = strResult.length;
	for( loopxxx=strLen; loopxxx>=0; loopxxx-- ){
		if( escape(Str_Value.charAt(loopxxx))=="%20" ){
			spaceLen++;
		}else{
			break;
		}
	}
	rightLen = strLen - spaceLen;
	strResult = strResult.substring(0, rightLen);
	//
	Field.value = strResult;
}

function GenerateStringByOption(optObj)
{
	var optStr = "";
	for(var i = 0; i < optObj.options.length; i ++) optStr += "<option value=" + optObj.options[i].value + ">" + optObj.options[i].text + "</option>";

	return optStr;
}

//check email
function checkEmail(email) 
{

	var re = /\w+@\w+\.\w+/;
  	if (re.test(email))
  	{
  		return true;
  	}
	else
	{
		return false;
	}
}
