/** * Copyright (c) Informa Healthcare, 2008. All rights reserved.

 * Unauthorized reproduction and/or distribution are strictly prohibited. 

 *

 * File: dateValidation.js

 * Created: 02/01/2009

 * @author: informa

 * @version: 5.0, 24/03/2009

 * 

 * **/



function checkDate(day, month, year) {

	

   try{

	var myDayStr = parseInt(day);

	var myMonthStr = parseInt(month);

	var myYearStr = parseInt(year);

	}catch(exception){

	alert("Please Enter Valid Date");

		return false;

	}

	var myMonth = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");

	var myDateStr = myDayStr + " " + myMonth[myMonthStr] + " " + myYearStr;

	

	/* Using form values, create a new date object

     using the setFullYear function */

	var myDate = new Date(myYearStr, myMonthStr, myDayStr);

	//myDate.setFullYear(myYearStr, myMonthStr, myDayStr);

	if (myYearStr === 0 || myMonthStr === -1 || myDayStr === 0) {

		alert("Please Enter Valid Date");

		return false;

	}

	if (myDate.getMonth() != myMonthStr) {

		alert("Please Enter Valid Date");

		return false;

	} else {

		return true;

	}

}

function checkDate1(day,month,year) {

	alert("inside the live method");

  var myDayStr = day;

  var myMonthStr = month;

  var myYearStr = year;

  var myMonth = new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');

  var myDateStr = myDayStr + ' ' + myMonth[myMonthStr] + ' ' + myYearStr;



  /* Using form values, create a new date object

     using the setFullYear function */



  var myDate = new Date();

  myDate.setFullYear( myYearStr, myMonthStr, myDayStr );



  if ( myDate.getMonth() != myMonthStr ) {

       alert( 'Please Enter Valid Date' );

       return false;

  } else {

      return true;

  }

}



function checkdate(objName) {

	

	var datefield = objName;

	if (chkdate(objName) === false) {

		datefield.select();

		alert("Given date is invalid.  Please try again.");

		datefield.focus();

		return false;

	} else {

		return true;

	}

}

function chkdate(objName) {

var strDatestyle = "US"; //United States date style

	//var strDatestyle = "EU";  //European date style

	var strDate;

	var strDateArray;

	var strDay;

	var strMonth;

	var strYear;

	var intday;

	var intMonth;

	var intYear;

	var booFound = false;

	var datefield = objName;

	var strSeparatorArray = new Array("-", " ", "/", ".");

	var intElementNr;

	var err = 0;

	var strMonthArray = new Array(12);

	strMonthArray[0] = "1";

	strMonthArray[1] = "2";

	strMonthArray[2] = "3";

	strMonthArray[3] = "4";

	strMonthArray[4] = "5";

	strMonthArray[5] = "6";

	strMonthArray[6] = "7";

	strMonthArray[7] = "8";

	strMonthArray[8] = "9";

	strMonthArray[9] = "10";

	strMonthArray[10] = "11";

	strMonthArray[11] = "12";

	strDate = datefield.value;

	if (strDate.length < 1) {

		return true;

	}

	for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) {

		if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) {

			strDateArray = strDate.split(strSeparatorArray[intElementNr]);

			if (strDateArray.length != 3) {

				err = 1;

				return false;

			} else {

				strDay = strDateArray[0];

				strMonth = strDateArray[1];

				strYear = strDateArray[2];

			}

			booFound = true;

		}

	}

	if (booFound === false) {

		if (strDate.length > 5) {

			strDay = strDate.substr(0, 2);

			strMonth = strDate.substr(2, 2);

			strYear = strDate.substr(4);

		}

	}

	if (strYear.length == 2) {

		strYear = "20" + strYear;

	}

// US style

	if (strDatestyle == "US") {

		strTemp = strDay;

		strDay = strMonth;

		strMonth = strTemp;

	}

	intday = parseInt(strDay, 10);

	if (isNaN(intday)) {

		err = 2;

		return false;

	}

	intMonth = parseInt(strMonth, 10);

	if (isNaN(intMonth)) {

		for (i = 0; i < 12; i++) {

			if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) {

				intMonth = i + 1;

				strMonth = strMonthArray[i];

				i = 12;

			}

		}

		if (isNaN(intMonth)) {

			err = 3;

			return false;

		}

	}

	intYear = parseInt(strYear, 10);

	if (isNaN(intYear)) {

		err = 4;

		return false;

	}

	if (intMonth > 12 || intMonth < 1) {

		err = 5;

		return false;

	}

	if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) {

		err = 6;

		return false;

	}

	if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) {

		err = 7;

		return false;

	}

	if (intMonth == 2) {

		if (intday < 1) {

			err = 8;

			return false;

		}

		if (LeapYear(intYear) === true) {

			if (intday > 29) {

				err = 9;

				return false;

			}

		} else {

			if (intday > 28) {

				err = 10;

				return false;

			}

		}

	}

	if (strDatestyle == "US") {

		datefield.value = strMonthArray[intMonth - 1] + "/" + intday + "/" + strYear;

	} else {

		datefield.value = intday + "/" + strMonthArray[intMonth - 1] + "/" + strYear;

	}

	return true;

}

function LeapYear(intYear) {

	if (intYear % 100 === 0) {

		if (intYear % 400 === 0) {

			return true;

		}

	} else {

		if ((intYear % 4) === 0) {

			return true;

		}

	}

	return false;

}

function doDateCheck(from, to) {

	

	if(!compareFromCurrentDate(from.value)){

	 	alert("From date should not be greater than current date.");

	}else if(!compareFromCurrentDate(to.value))

	{

		alert("To date should not be greater than current date.");

		return false;

	}else{

	

		if (Date.parse(transferDateString(from.value)) <= Date.parse(transferDateString(to.value))) {

			return true;

		} else {

			if (from.value == "" && to.value == "") {

				alert("Both dates must be entered.");

				return false;

			} else if(from.value === ""){

			alert("From date must be entered");

			return false;

			}else if(to.value === ""){

			alert("To date must be entered");

			return false;

			}else {

				alert("To date must occur after the from date.");

				return false;

			}

		}

	}

}

function transferDateString(orignalDate) {

	var month = orignalDate.substring(0, orignalDate.indexOf("/"));

	var date = orignalDate.substring(orignalDate.indexOf("/") + 1, orignalDate.lastIndexOf("/"));

	var year = orignalDate.substring(orignalDate.lastIndexOf("/") + 1);

	return month + "/" + date + "/" + year;

}



function compareFromCurrentDate(orignalDate) {

	var month = orignalDate.substring(0, orignalDate.indexOf("/"));

	var date = orignalDate.substring(orignalDate.indexOf("/") + 1, orignalDate.lastIndexOf("/"));

	var year = orignalDate.substring(orignalDate.lastIndexOf("/") + 1);

	

	var today = new Date();

	var currentDate=new Date(today.getFullYear(),today.getMonth(),today.getDate())

	var date = new Date(year,month-1,date);

	if(date > currentDate)

	{

	 return false;

	}else{

		

	 	 return true;

	}



}



function validateDate(day,month,year)

{

	var valDate= "";

   if(day != "00" || month != "00" || year != "0")

   {

   		valDate= day + month + year;

   }

	return valDate;

}





function validateDateRange(fromDate,toDate)

{

	var valDateRange= "";

   if(fromDate =="MM/DD/YYYY" && toDate == "MM/DD/YYYY")

   {

   		valDateRange= "";

   }

   else{

    	valDateRange = fromDate + toDate;

   }

	return valDateRange;	

}


