var error_str="" ;

function isName(fieldvalue,fieldname) { 
	if (fieldvalue.length==0) {
		error_str=error_str+"* "+fieldname+"  is Empty\n";
		return
	}	
	for(var i=0; i<fieldvalue.length; i++) {
		var c = fieldvalue.charAt(i);
		if (!((c >= "a" && c<="z") ||(c >= "A" && c<="Z") || (c == "'") || (c==" ") || (c=="-") || (c=="."))) {
			error_str=error_str+"* "+fieldname+"  is not an Alphabets\n";
			return
	    }
	}
}

function isempty(fieldvalue,fieldname) {
    if ((fieldvalue == "") || (fieldvalue == null) || (fieldvalue ==" ")) {
        error_str=error_str+"* " +fieldname+" is Empty\n";
		return
    }
}


function isInteger(fieldvalue,fieldname) { 
	for(var i=0; i<fieldvalue.length;i++) {
		var c = fieldvalue.charAt(i);
		if (!(c >= "0" && c<="9")) {
			error_str=error_str+"* "+fieldname+"  is not an integer\n";
			return
	    }
	}
}


function isInt(fieldvalue,fieldname) { 
 if (fieldvalue.length > 0 ) {
	for(var i=0; i<fieldvalue.length;i++) {
		var c = fieldvalue.charAt(i);
		if (!(c >= "0" && c<="9")) {
			error_str=error_str+"* "+fieldname+"  is not an integer\n";
			return
	    }
	}
	}
}

// To check for Number with Decimal points.

function isChar(fieldvalue,fieldname) { 
	for(var i=0; i<fieldvalue.length;i++) {
		var c = fieldvalue.charAt(i);
		if (!((c >= "a" && c<="z") ||(c >= "A" && c<="Z"))) {
			error_str=error_str+"* "+fieldname+"  is not Alphabet(s)\n";
			return
	    }
	}
}

function isemptyRDO(fieldvalue,fieldname)  {
	for(var i=0; i<fieldvalue.length; i++)  {
		if(fieldvalue[i].checked == 1)
			return;
	}
	error_str=error_str+"* "+fieldname+"  is not Selected\n";
	return;
}

function isNumber(fieldvalue,fieldname) { 
	for(var i=0; i<fieldvalue.length;i++) {
		var c = fieldvalue.charAt(i);
		if (!((c >= "0" && c<="9") || (c=="."))) {
			error_str=error_str+"* "+fieldname+"  is not a Number\n";
			return
	    }
	}
}

function Bool_isNumber(fieldvalue,fieldname) { 
	for(var i=0; i<fieldvalue.length;i++) {
		var c = fieldvalue.charAt(i);
		if (!((c >= "0" && c<="9") || (c=="."))) {
			return false;
	    }
	}
	return true;
}

function isAlpha(fieldvalue,fieldname) { 
	if (fieldvalue.length==0) {
		error_str=error_str+"* "+fieldname+"  is Empty\n";
		return
	}
	for(var i=0; i<fieldvalue.length; i++) {
		var c = fieldvalue.charAt(i);
		if (!((c >= "a" && c<="z") ||(c >= "A" && c<="Z") || (c >= "0" && c<="9") )) {
			error_str=error_str+"* "+fieldname+"  is not Alphanumeric\n";
			return
	    }
	}
}

function isDate(fieldvalue,fieldname,type) { 
if (type=="M") {
	if (fieldvalue.length == 0 ) {
		error_str=error_str+"* "+fieldname+"  is Empty \n";
		return
	}
}	
else { if (fieldvalue.length == 0) return }

if (fieldvalue.length < 8 ) {
		error_str=error_str+"* "+fieldname+"  is invalid \n";
		return
}

var dpart = fieldvalue.split(Find_Date_Separater(fieldvalue))
if (dpart.length!=3) {
		error_str=error_str+"* "+fieldname+"  is invalid format\n";
		return
}
var yyyy=dpart[2]
var mm=parseFloat(dpart[1])
var dd;
dd=parseFloat(dpart[0])
if (yyyy.length!=4) {
		error_str=error_str+"* "+fieldname+" 's year must be 4 digit length \n";
		return
}

if ((mm < 1) || (mm > 12 )) {
		error_str=error_str+"* "+fieldname+" 's month must be 1 - 12 \n";
		return
}

if ((dd< 1) || ( dd > Find_Upper_Day(yyyy,mm))) {
		error_str=error_str+"* "+fieldname+" 's day must be 1 - " +Find_Upper_Day(yyyy,mm) +" \n";
		return
}
}

function Find_Upper_Day(Year,mm) {
var Year = parseInt(Year)
var febday=28
if (((Year % 4 == 0) && (Year % 100 != 0)) || (Year % 400 == 0)) febday=29 
var days = new Array(31,28,31,30, 31, 30, 31, 31, 30, 31, 30, 31)
days[1]=febday
return days[mm-1]
}


function Find_Date_Separater(dt) {
if ( dt.indexOf("/") > 0 ) return "/"
// if ( dt.indexOf("-") > 0 ) return "-"
// if ( dt.indexOf(".") > 0 ) return "."
return ""
}

//To check any data available in current form values to give alert msg ( reset / back / link change)
function isDataAvailable(form) {
	var update_tag=true
	for(i=0;i<form.elements.length;i++) {
		//alert(form.elements[i].value)
		if (form.elements[i].type == "checkbox") {
		   if (form.elements[i].checked) {
				update_tag=false;
				break;
			}
		} else if (form.elements[i].value != "" && form.elements[i].type != "hidden" && form.elements[i].type != "submit" && form.elements[i].type != "button" && form.elements[i].type != "radio") {
			update_tag=false;
			break;
		}
	}
	return update_tag
}

//To limit decimal points with 2 digits
function CheckDecimals(mfield){
	var len = mfield.value.length
	var point = mfield.value.indexOf('.')
	if (point >= 0) if (len > point+3) mfield.value = mfield.value.substr(0,len-1)
}

// To round the number with 2 decimal accuracy
function round(number) {
	number = number + ""
	if (number.indexOf(".") < 0) {
		number = number + ".00"
		return number
	}
	var new_num
	var mdecimals
	mdecimals = number.substr(number.indexOf(".")+1)
	new_num = number.substring(0,number.indexOf("."))
	new_num = new_num + "." + number.substr(number.indexOf(".")+1,2)
	new_num = parseFloat(new_num)
	if (mdecimals.length > 2) {
		if (parseInt(mdecimals.substr(2,1)) > 4) {
			new_num = new_num + 0.01
		}
	}
	new_num = new_num + ""
	if (new_num.indexOf(".") < 0) {
		new_num = new_num + ".00"
	} else if ((new_num.substr(new_num.indexOf(".")+1)).length < 2) {
		new_num = new_num + "0"
	}
	return new_num
}

// To round the number with decimal accuracy
function roundold(n, d) {
  n = n - 0; // force number
  if (d == null) d = 2;
  var f = Math.pow(10, d);
  n += Math.pow(10, - (d + 1)); // round first
  n = Math.round(n * f) / f;
  n += Math.pow(10, - (d + 1)); // and again
  n += ''; // force string
  return d == 0 ? n.substring(0, n.indexOf('.')) :
      n.substring(0, n.indexOf('.') + d + 1);
}

// Currency Format ($)
function formatCurrency(num) {
num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num))
num = "0";
sign = (num == (num = Math.abs(num)));
num = Math.floor(num*100+0.50000000001);
cents = num%100;
num = Math.floor(num/100).toString();
if(cents<10) 
cents = "0" + cents;
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
num = num.substring(0,num.length-(4*i+3))+','+
num.substring(num.length-(4*i+3));
return (((sign)?'':'-') + '$' + num + '.' + cents);
}

// Format  Number ()
function formatNumber(num) {
num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num))
num = "0";
sign = (num == (num = Math.abs(num)));
num = Math.floor(num*100+0.50000000001);
num = Math.floor(num/100).toString();
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
num = num.substring(0,num.length-(4*i+3))+','+
num.substring(num.length-(4*i+3));
return (((sign)?'':'-') + num);
}





//to validate publication # 
function isPhone(fieldvalue,fieldname) { 
if (fieldvalue.length==0) {
		error_str=error_str+"* "+fieldname+"  is Empty\n";
		return
	}
	for(var i=0; i<fieldvalue.length; i++) {
		var c = fieldvalue.charAt(i);
		if (!((c >= "0" && c<="9") || (c == "-" ) || (c == " " ) || (c == ")" )|| (c == "(" ))) {
			error_str=error_str+"* "+fieldname+"  is inValid\n";
			return
	    }
	}
}

// To validate merchant id 
function isCardNo(fieldvalue,fieldname) { 
	if ( fieldvalue.length==0 ) {
	error_str=error_str+"* "+fieldname+"  is Empty\n";
			return
	}
	for(var i=0; i<fieldvalue.length; i++) {
		var c = fieldvalue.charAt(i);
		if (!((c >= "0" && c<="9") || (c == " " ))) {
			error_str=error_str+"* "+fieldname+"  is inValid \n";
			return
	    }
	}
}

function isCardDate(fieldvalue,fieldname) { 
if (fieldvalue.length < 7) {
	error_str=error_str+"* "+fieldname+"  is inValid\n";
			return
	}
if (fieldvalue.indexOf("/") != 2 ) {
	error_str=error_str+"* "+fieldname+"  is invalid format\n";
			return
	}
var dtp = fieldvalue.split("/")
var mm = parseFloat(dtp[0])
var yyyy = parseFloat(dtp[1])
if (yyyy < 2000) {
		error_str=error_str+"* "+fieldname+" year is invalid \n"
		return
}

if ((mm < 1) || (mm > 12 )) {
		error_str=error_str+"* "+fieldname+" 's month must be 01 - 12 \n";
		return
}

}

function isDecimal(fieldvalue,fieldname) {
    for(var i=0; i<fieldvalue.length;i++) {
		var c = fieldvalue.charAt(i);
		if (c ==".") 
			continue
		if (!(c >= "0" && c<="9")) {
			error_str=error_str+"* "+fieldname+"  is not a number\n";
	    }
	}
}

function isEmail(fieldvalue) {
var checkTLD=1;
var emailPat=/^(.+)@(.+)$/
var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
var validChars="\[^\\s" + specialChars + "\]";
var quotedUser="(\"[^\"]*\")";
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
var atom=validChars + '+';
var word="(" + atom + "|" + quotedUser + ")";
var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
var matchArray=fieldvalue.match(emailPat);

if (matchArray==null) {
error_str=error_str+"* Email address format incorrect (check @ and .'s)\n"
return_tag = false
return false;
}

var user=matchArray[1];
var domain=matchArray[2];
for (i=0; i<user.length; i++) {
if (user.charCodeAt(i)>127) {
error_str=error_str+"* Invalid Email ID\n   Ths username contains invalid characters.\n";
return_tag = false
return false;
   }
}
for (i=0; i<domain.length; i++) {
if (domain.charCodeAt(i)>127) {
error_str=error_str+"* Invalid Email ID\n   Ths domain name contains invalid characters.\n";
return_tag = false
return false;
   }
}

// See if "user" is valid 

if (user.match(userPat)==null) {

// user is not valid
error_str=error_str+"* Invalid Email ID\n   The username doesn't seem to be valid.\n";
return_tag = false
return false;
}


var IPArray=domain.match(ipDomainPat);
if (IPArray!=null) {

// this is an IP address

for (var i=1;i<=4;i++) {
if (IPArray[i]>255) {
error_str=error_str+"* Invalid Email ID\n   Destination IP address is invalid!\n";
return_tag = false
return false;
   }
}
return true;
}

 
var atomPat=new RegExp("^" + atom + "$");
var domArr=domain.split(".");
var len=domArr.length;
for (i=0;i<len;i++) {
if (domArr[i].search(atomPat)==-1) {
error_str=error_str+"* Invalid Email ID\n   The domain name is not valid.\n";
return_tag = false
return false;
   }
}


if (checkTLD && domArr[domArr.length-1].length!=2 && 
domArr[domArr.length-1].search(knownDomsPat)==-1) {
error_str=error_str+"* Invalid Email ID\n   The address must end in a well-known domain or two letter " + "country.\n";
return_tag = false
return false;
}

if (len<2) {
error_str=error_str+"* Invalid Email ID\n   This address is missing a hostname!\n";
return_tag = false
return false;
}
return true;
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

// Very important function

function makeArray0() {
    for (i = 0; i<makeArray0.arguments.length; i++)
        this[i] = makeArray0.arguments[i];
}
