function isBlank(val1)
{
	//alert(val1);
	if(trim(val1) == "")
		return true;
		
	return false;
}

function isString(num)
{
	//alert(num);
	
	var number,chars;
	number  = "0123456789_";
	chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
	number += chars;
	//else
	//number  = "0123456789,";
		
	var i;
	for(i=0;i<num.length;i++)
	{
		if(number.indexOf(num.substring(i,i+1))== -1)
			return false;
	}
	
	return true;
}

function isNumber(num)
{
	//alert(num);
	
	var number;
	number  = "+-0123456789. ";
	//else
	//number  = "0123456789,";
		
	var i;
	for(i=0;i<num.length;i++)
	{
		if(number.indexOf(num.substring(i,i+1))== -1)
			return false;
	}
	
	return true;
}

function isNumber1(num,Extras)
{
	//alert(num+" : "+Extras);
	var number;
	//if(Form1.Radio1.checked==true)
	//	number  = "0123456789";
	//else
	number  = "-+0123456789. " + Extras;
		
	var i;
	for(i=0;i<num.length;i++)
	{
		if(number.indexOf(num.substring(i,i+1))== -1)
		{
			return false;
		}
	}
	
	return true;
}

function NextRandom(IPrevNo,ILength,SRndType)
{
	var Ind=-1;
	var IPRInd = IPrevNo;//Form1.hPrevInd.value;
	var DRnd = Math.random();
	var SDefsLen = ILength;//SDefs.length;

	if(SRndType == "Rnd")
	{
		Ind = Math.round(DRnd * SDefsLen);
			
		while(IPRInd==Ind && SDefsLen > 1) //TO STOP REPEATING THE PREVIOUS ONE
		{
			DRnd = Math.random();
			Ind = Math.round(DRnd * SDefsLen);
		}
		if(Ind>=SDefsLen)
			Ind=SDefsLen-1;
	}
	else //if(SRndType == "Next")
	{
		Ind = parseInt(IPRInd) + 1;
		if(Ind>=SDefsLen)
			Ind=0;
	}
			
	return Ind;
}


function isPINumber(num)
{
	//alert(num);
	
	var number;
	number  = "0123456789 ";
	//else
	//number  = "0123456789,";
		
	var i;
	for(i=0;i<num.length;i++)
	{
		if(number.indexOf(num.substring(i,i+1))== -1)
			return false;
	}
	
	return true;
}

function isPINumber1(num,Extras)
{
	//alert(num);
	
	var number;
	number  = "0123456789 " + Extras;
	//else
	//number  = "0123456789,";
		
	var i;
	for(i=0;i<num.length;i++)
	{
		if(number.indexOf(num.substring(i,i+1))== -1)
			return false;
	}
	
	return true;
}

function trim(SVal)
{
	var RVal = "";
	for(i=0;i<SVal.length;i++)
	{
		if(SVal.substring(i,i+1)!=" ")
		{
			RVal = RVal + SVal.substring(i,i+1);
		}
	}
	return RVal;
}



function checkEmailAddress(field) 
{
	// the following expression must be all on one line...
	var good = false;
	//var goodEmail = field.value.match(/\b(^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\..{2,2}))$)\b/gi);
	var goodEmail = field.match(/\b(^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\..{2,2}))$)\b/gi);

	if (goodEmail) 
	{
		good = true;
	}

	return good;
}


//RETURNS +,- INTEGER NUMBER
function RandomIntPN(limit)
{
	return Math.pow(-1,parseInt(Math.random()*2))* (parseInt(Math.random() * limit) + 1);
}

//RETURNS INTEGER NUMBER
function RandomInt(limit)
{
	return (parseInt(Math.random() * limit) + 1);
}

function Random(limit)
{
	return (Math.random() * limit);
}


function QEncode(S)
{
	//var t = S.split("+"); S = t.join("PLUS");
	S = S.split("+").join("PLUS");
	//S = S.replace("+", "PLUS");//ENCODE '+' SIGN
	//S = S.replace("<", "LT");//ENCODE '<' SIGN
	//S = S.replace(">", "GT");//ENCODE '>' SIGN
	return S;
}

function QDecode(S)
{
	S = S.replace("PLUS", "+");//DECODE '+' SIGN
	//S = S.replace("LT", "<");//DECODE '<' SIGN
	//S = S.replace("GT", ">");//DECODE '>' SIGN
	return S;
}


function doClick(buttonName,e)
{
    //the purpose of this function is to allow the enter key to 
    //point to the correct button to click.
    //alert("doClick :"+buttonName);
    var key;

     if(window.event)
          key = window.event.keyCode;     //IE
     else
          key = e.which;     //firefox

    //alert("doClick :"+window.event+", key="+key );

    if (key == 13)
    {
        //Get the button the user wants to have clicked

        var btn = document.getElementById(buttonName);
        //alert("btn="+btn );      
        if (btn != null)
        { //If we find the button click it
            if(window.event)
                window.event.keyCode=0; //IE
            else
                e.which=0; //firefox

            btn.click();
        }
    }
}


function isBlankOrNumber(txt1)
{
	txt1.value = trim(txt1.value);
	if(isBlank(txt1.value))
	{
		alert("Please Enter Numeric Value");
		txt1.focus();
		txt1.select();
		return false;
	}
	else if(!isNumber1(txt1.value,",/"))
	{
		alert("Please Enter Numeric Value");
		txt1.focus();
		txt1.select();
		return false;
	}
	
	return true;
}

function join(SValS,ch)
{
	var SJoin = "";
    for(var j=0;j<SValS.length;j++)
    {
        if( ! isBlank(SValS[j]) )
        {
            //SJoin += SValS[j]+",";
            SJoin += SValS[j]+ch;
        }
    }
    return SJoin.substring(0,SJoin.length-1);
}

function joinComma(SValS)
{
    return join(SValS.split(","),",");
}

function replaceSemicolonToComma(S)
{
	S = S.split(";").join(",");
	return joinComma(S);
}

function replace(S,SF,ST)
{
	return S.split(SF).join(ST);
}


function isCommaSepeNum(S)
{
    //-->NOW SEPEARATE ALL VALUES BY ',' THEN CHECK EACH IS NUMERIC 
    //S = replaceSemicolonToComma(S);
    var SData = S;
	var SDs = SData.split(",");
    for(var i=0;i<SDs.length;i++)
    {
	    //-->CONTENTS VALIDATION
	    if(!isNumber1(SDs[i],"."))
	    {
		    alert(SDs[i] + " is not numeric. Please enter only numeric value with , seperated ");
		    //document.aspnetForm.ctl00_ContentPlaceHolder1_txtData.focus();
		    return false;
	    }
	    //<--CONTENTS VALIDATION
    }
    //<--NOW SEPEARATE ALL VALUES BY ',' THEN CHECK EACH IS NUMERIC 
    return true;
}

function Round(No,Dp)
{
	Dp = (!Dp ? 0 : Dp);
	return Math.round(No*Math.pow(10,Dp))/Math.pow(10,Dp);
}
	