function ltrim(str)
{	
	var temp = str;	
	try
	{	
		for(i=0;i<temp.length;i++)
		{
			if(temp.charAt(0) == ' ')
				temp = temp.substring(1);
			else
				break;
		}	
	}
	catch(e){}	
	return temp;	
}

function rtrim(str)
{
	var temp = str;
	try
	{	
		for(i=temp.length-1;i>=0;i--)
		{
			if(temp.charAt(i) == ' ')
				temp = temp.substring(0,i);
			else
				break;
		}	
	}
	catch(e){}	
	return temp;
}

function trim(str)
{
	try
	{
		str = ltrim(str);
		str = rtrim(str);
	}
	catch(e){}
	return str;
}

function validateform(str)
{
	var sstr = str.split(',')
	var i,j,tstr,errorStr
	errorStr=""
	for (i=0;i<sstr.length;i=i+3)
	{
		var s = eval("document.forms(0)." + sstr[i] + ".value")
		if ((sstr[i+2]=="R" || sstr[i+2]=="RE") && s=="")		
			errorStr = errorStr + "\n" + sstr[i + 1] + " is Required."		
		else if(sstr[i+2]=="RN"  && parseInt(s)==0)		
			errorStr = errorStr + "\n" + sstr[i + 1] + " is Required."
		else if((sstr[i+2]=="E" || sstr[i+2]=="RE") && s!='')
			if (!checkEmail(s))
					errorStr = errorStr + "\n" + sstr[i + 1] + " is not a valid Email Address."				
	}
	if (errorStr!="")
	{
		alert("Please check the following errors :" + errorStr)
		return false
	}
	else
		return true;
}

function checkEmail(strng)
{
	var emailFilter=/^.+@.+\..{2,3}$/;
	if (!(emailFilter.test(strng))) 
		return false;
	var illegalChars= /[\(\)\<\>\?\,\;\:\\\/\"\[\]\*\+\-\&\%\!\#\$\^\=]/		
	if (strng.match(illegalChars)) 
		return false;
	else
		return true;
}
function namechk()
{
	if (event.keyCode!=32)
	{
		if ((event.keyCode <65 || event.keyCode>90)&&(event.keyCode <97 || event.keyCode>122)) 
		event.keyCode=0;
	}
}

function NumbersOnly()
{
	if (event.keyCode<48 || event.keyCode>57)
		event.keyCode=0;
}
function document.onkeydown()
{
	if (event.keyCode==8)
	{
		event.keyCode=0;
	}
}
function showcal(s)
{
	var str;
	str=document.all(s).value.split("-")
								
	document.all("frmcal").src='calendar1.asp?frmnm=' + getFrames() + '&obj=' + s + '&month=' + mnum(str[1]) + '&year=' + str[2];				
	document.all('divcal').style.display='';
	document.all('divcal').style.zIndex=0;
	document.all('divcal').style.left=event.x-200;
	document.all('divcal').style.top=event.y;
			
}

function getFrames()
{	
	var frmnm,currfrm;
	frmnm="['"  + frameElement.name + "']";	
	currfrm="parent"	
	while ( eval(currfrm) != top)
	{
		frmnm= "['" + eval(currfrm + '.name') + "']" + frmnm
		currfrm = "parent." + currfrm		
	}
	return	"top.frames" + frmnm	
}

function hidecal()
{
	document.all("divcal").style.display='none';
		
}

function mnum(a)
{
	switch(a)
	{
		case "JAN": 
			return 1
		case  "FEB":
			return 2
		case "MAR": 
			return 3
		case "APR": 
			return 4
		case  "MAY":
			return 5
		case  "JUN":
			return 6
		case "JUL" :
			return 7
		case "AUG" :
			return 8
		case "SEP" :
			return 9
		case "OCT" :
			return 10
		case "NOV" :
			return 11
		case "DEC" :
			return 12;				
		}			
}


function FormatDate(DateToFormat,FormatAs){
if(DateToFormat==""){return"";}
if(!FormatAs){FormatAs="dd/mm/yyyy";}

var strReturnDate;
FormatAs = FormatAs.toLowerCase();
DateToFormat = DateToFormat.toLowerCase();
var arrDate
var arrMonths = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
var strMONTH;
var Separator;

while(DateToFormat.indexOf("st")>-1){
DateToFormat = DateToFormat.replace("st","");
}

while(DateToFormat.indexOf("nd")>-1){
DateToFormat = DateToFormat.replace("nd","");
}

while(DateToFormat.indexOf("rd")>-1){
DateToFormat = DateToFormat.replace("rd","");
}

while(DateToFormat.indexOf("th")>-1){
DateToFormat = DateToFormat.replace("th","");
}

if(DateToFormat.indexOf(".")>-1){
Separator = ".";
}

if(DateToFormat.indexOf("-")>-1){
Separator = "-";
}


if(DateToFormat.indexOf("/")>-1){
Separator = "/";
}

if(DateToFormat.indexOf(" ")>-1){
Separator = " ";
}

arrDate = DateToFormat.split(Separator);
DateToFormat = "";
	for(var iSD = 0;iSD < arrDate.length;iSD++){
		if(arrDate[iSD]!=""){
		DateToFormat += arrDate[iSD] + Separator;
		}
	}
DateToFormat = DateToFormat.substring(0,DateToFormat.length-1);
arrDate = DateToFormat.split(Separator);

if(arrDate.length < 3){
return "";
}

var DAY = arrDate[0];
var MONTH = arrDate[1];
var YEAR = arrDate[2];




if(parseFloat(arrDate[1]) > 12){
DAY = arrDate[1];
MONTH = arrDate[0];
}

if(parseFloat(DAY) && DAY.toString().length==4){
YEAR = arrDate[0];
DAY = arrDate[2];
MONTH = arrDate[1];
}


for(var iSD = 0;iSD < arrMonths.length;iSD++){
var ShortMonth = arrMonths[iSD].substring(0,3).toLowerCase();
var MonthPosition = DateToFormat.indexOf(ShortMonth);
	if(MonthPosition > -1){
	MONTH = iSD + 1;
		if(MonthPosition == 0){
		DAY = arrDate[1];
		YEAR = arrDate[2];
		}
	break;
	}
}

var strTemp = YEAR.toString();
if(strTemp.length==2){

	if(parseFloat(YEAR)>40){
	YEAR = "19" + YEAR;
	}
	else{
	YEAR = "20" + YEAR;
	}

}


	if(parseInt(MONTH)< 10 && MONTH.toString().length < 2){
	MONTH = "0" + MONTH;
	}
	if(parseInt(DAY)< 10 && DAY.toString().length < 2){
	DAY = "0" + DAY;
	}
	switch (FormatAs){
	case "dd/mm/yyyy":
	return DAY + "/" + MONTH + "/" + YEAR;
	case "mm/dd/yyyy":
	return MONTH + "/" + DAY + "/" + YEAR;
	case "dd/mmm/yyyy":
	return DAY + " " + arrMonths[MONTH -1].substring(0,3) + " " + YEAR;
	case "mmm/dd/yyyy":
	return arrMonths[MONTH -1].substring(0,3) + " " + DAY + " " + YEAR;
	case "dd/mmmm/yyyy":
	return DAY + " " + arrMonths[MONTH -1] + " " + YEAR;	
	case "mmmm/dd/yyyy":
	return arrMonths[MONTH -1] + " " + DAY + " " + YEAR;
	}

return DAY + "/" + strMONTH + "/" + YEAR;;

} //End Function



	function checkValidDate(dateStr) {
    // dateStr must be of format month day year with either slashes
    // or dashes separating the parts. Some minor changes would have
    // to be made to use day month year or another format.
    // This function returns True if the date is valid.
    var slash1 = dateStr.indexOf("/");
    if (slash1 == -1) { slash1 = dateStr.indexOf("-"); }
    // if no slashes or dashes, invalid date
    if (slash1 == -1) { return false; }
    var dateMonth = dateStr.substring(0, slash1)
    var dateMonthAndYear = dateStr.substring(slash1+1, dateStr.length);
    var slash2 = dateMonthAndYear.indexOf("/");
    if (slash2 == -1) { slash2 = dateMonthAndYear.indexOf("-"); }
    // if not a second slash or dash, invalid date
    if (slash2 == -1) { return false; }
    var dateDay = dateMonthAndYear.substring(0, slash2);
    var dateYear = dateMonthAndYear.substring(slash2+1, dateMonthAndYear.length);
    if ( (dateMonth == "") || (dateDay == "") || (dateYear == "") ) { return false; }
    // if any non-digits in the month, invalid date
    for (var x=0; x < dateMonth.length; x++) {
        var digit = dateMonth.substring(x, x+1);
        if ((digit < "0") || (digit > "9")) { return false; }
    }
    // convert the text month to a number
    var numMonth = 0;
    for (var x=0; x < dateMonth.length; x++) {
        digit = dateMonth.substring(x, x+1);
        numMonth *= 10;
        numMonth += parseInt(digit);
    }
    if ((numMonth <= 0) || (numMonth > 12)) { return false; }
    // if any non-digits in the day, invalid date
    for (var x=0; x < dateDay.length; x++) {
        digit = dateDay.substring(x, x+1);
        if ((digit < "0") || (digit > "9")) { return false; }
    }
    // convert the text day to a number
    var numDay = 0;
    for (var x=0; x < dateDay.length; x++) {
        digit = dateDay.substring(x, x+1);
        numDay *= 10;
        numDay += parseInt(digit);
    }
    if ((numDay <= 0) || (numDay > 31)) { return false; }
    // February can't be greater than 29 (leap year calculation comes later)
    if ((numMonth == 2) && (numDay > 29)) { return false; }
    // check for months with only 30 days
    if ((numMonth == 4) || (numMonth == 6) || (numMonth == 9) || (numMonth == 11)) { 
        if (numDay > 30) { return false; } 
    }
    // if any non-digits in the year, invalid date
    for (var x=0; x < dateYear.length; x++) {
        digit = dateYear.substring(x, x+1);
        if ((digit < "0") || (digit > "9")) { return false; }
    }
    // convert the text year to a number
    var numYear = 0;
    for (var x=0; x < dateYear.length; x++) {
        digit = dateYear.substring(x, x+1);
        numYear *= 10;
        numYear += parseInt(digit);
    }
    // Year must be a 2-digit year or a 4-digit year
    if ( (dateYear.length != 2) && (dateYear.length != 4) ) { return false; }
    // if 2-digit year, use 50 as a pivot date
    if ( (numYear < 50) && (dateYear.length == 2) ) { numYear += 2000; }
    if ( (numYear < 100) && (dateYear.length == 2) ) { numYear += 1900; }
    if ((numYear <= 0) || (numYear > 9999)) { return false; }
    // check for leap year if the month and day is Feb 29
    if ((numMonth == 2) && (numDay == 29)) {
        var div4 = numYear % 4;
        var div100 = numYear % 100;
        var div400 = numYear % 400;
        // if not divisible by 4, then not a leap year so Feb 29 is invalid
        if (div4 != 0) { return false; }
        // at this point, year is divisible by 4. So if year is divisible by
        // 100 and not 400, then it's not a leap year so Feb 29 is invalid
        if ((div100 == 0) && (div400 != 0)) { return false; }
    }
    // date is valid
    return true;
}


function dateAdd(intval, numb, d){
     /*intval is YYYY, M, D, H, N, S as in VBscript; numb is amount +/-; base is javascript date object*/
     var base = new Date(d);
     switch(intval){
          case "M":
               base.setMonth(base.getMonth() + numb);
               break;
          case "YYYY":
               base.setFullYear(base.getFullYear() + numb);
               break;
          case "D":
               base.setDate(base.getDate() + numb);
               break;
          case "H":
               base.setHours(base.getHours() + numb);
               break;
          case "N":
               base.setMinutes(base.getMinutes() + numb);
               break;
          case "S":
               base.setSeconds(base.getSeconds() + numb);
               break;
		   case 'WW':
            	base.setDate(base.getDate() + (numb*7));
           		break;
          default:
     }
     return base
}

