
//Function to check entry of valid characters
function IsValidEntry(obj, intMinLen, intMaxLen, strValidChars, Message)
{
  var obj;
  
  ReturnString = removeSpaces(obj.value);
  obj.value = ReturnString;
  
  str = obj.value;
  strInputWithUcase = str.toUpperCase();
  
  if(ReturnString.length == 0 && intMinLen != 0)
    {
      alert(Message + '.');
      obj.focus();
      obj.select();      
      return false;
    }  

   //   checking for minlen
  if(ReturnString.length < intMinLen)
    {
      alert(Message + " correctly. \n\n(Characters can not be less than " + intMinLen + ")");
      obj.focus();
      obj.select();      
      return false;
    }  
      
               //   checking for maxlen
  if(obj.value.length > intMaxLen)
    {
      alert(Message + " correctly. \n\n(Characters can not be more than " + intMaxLen + ".  Currently " + obj.value.length + " entered)");
      obj.focus();
      obj.select();      
      return false;
    }
                  // if ValidChars is Empty string than any input can be taken  
  if(strValidChars == "") 
    {
      return true;
    } 
              //  checking for unvalid characters 
  for (j = 0; j < obj.value.length; j++) 
  {           // Searching through string

     var c = strInputWithUcase.charAt(j);
     if (strInputWithUcase.charCodeAt(j) != 13 && strInputWithUcase.charCodeAt(j) != 10) 
     {
 	      if (strValidChars.indexOf(c) == -1)
    	   {
        	  alert(Message + " correctly (Invalid Character: " + c + ").");
	          obj.focus();
	          obj.select();      
	          return false;
	        }  
      }
  }
  return true;  
}

 // fn is required with IsValidEntry
function removeSpaces(string) 
{
  var temp;
  temp = string;
  while (!(temp.indexOf('  ') == -1))
  {
    temp = temp.replace('  ',' ');
  }
  
  if (temp.charAt(0)  == ' ')
   {
    temp = temp.substring(1, temp.length);
   }
  
  if (temp.charAt(temp.length - 1)  == ' ')
   {
    temp = temp.substring(0, temp.length - 1);
   }
  return temp;
}


function getSelectedCheckbox(buttonGroup) {
   // Go through all the check boxes. return an array of all the ones
   // that are selected (their position numbers). if no boxes were checked,
   // returned array will be empty (length will be zero)
   var retArr = new Array();
   var lastElement = 0;
   if (buttonGroup[0]) { // if the button group is an array (one check box is not an array)
      for (var i=0; i<buttonGroup.length; i++) {
         if (buttonGroup[i].checked) {
            retArr.length = lastElement;
            retArr[lastElement] = i;
            lastElement++;
         }
      }
   } else { // There is only one check box (it's not an array)
      if (buttonGroup.checked) { // if the one check box is checked
         retArr.length = lastElement;
         retArr[lastElement] = 0; // return zero as the only array value
      }
   }
   return retArr;
} // Ends the "getSelectedCheckbox" function



function getSelectedCheckboxValue(buttonGroup) 
{
   // return an array of values selected in the check box group. if no boxes
   // were checked, returned array will be empty (length will be zero)
   var retArr = new Array(); // set up empty array for the return values
   var selectedItems = getSelectedCheckbox(buttonGroup);
   if (selectedItems.length != 0) { // if there was something selected
      retArr.length = selectedItems.length;
      for (var i=0; i<selectedItems.length; i++) {
         if (buttonGroup[selectedItems[i]]) { // Make sure it's an array
            retArr[i] = buttonGroup[selectedItems[i]].value;
         } else { // It's not an array (there's just one check box and it's selected)
            retArr[i] = buttonGroup.value;// return that value
         }
      }
   }
   return retArr;
} // Ends the "getSelectedCheckBoxValue" function


//Function to replace a text with a new text in a string
function replace(string,text,by) {
// Replaces text with by in string
	//alert("I am in replace");
    var strLength = string.length;
	var txtLength = text.length;
    if ((strLength == 0) || (txtLength == 0)) return string;

    var i = string.indexOf(text);
    if ((!i) && (text != string.substring(0,txtLength)))
		return string;
    if (i == -1) return string;

    var newstr = string.substring(0,i) + by;

    if (i+txtLength < strLength)
        newstr += replace(string.substring(i+txtLength,strLength),text,by);

    return newstr;
}




//Function to change Date format from dd-mm-yyyy to yyyy-mm-dd
function ChangeDateFormat(ddmmyyyy)
{
	var dd = ddmmyyyy.substr(0,2);
	var mm = ddmmyyyy.substr(3,2);
	var yyyy = ddmmyyyy.substr(6,4);
	var yyyymmdd = yyyy + '-' + mm + '-' + dd;
	return yyyymmdd;
}

//Function to check the date format in dd-mm-yyyy
function CheckDateFormat(ddmmyyyy)
{
	var dd = ddmmyyyy.substr(0,2);
	var mm = ddmmyyyy.substr(3,2);
	var yyyy = ddmmyyyy.substr(6,4);
	var separator1 = ddmmyyyy.substr(2,1);
	var separator2 = ddmmyyyy.substr(5,1);
	if(dd > 31 || mm > 12 || yyyy < 0000 || yyyy >9999)
		return false;
	if(separator1 != "-" || separator2 !="-")
		return false;
	return true;
}


//This function Checks the Archived From-date and To-Date and calls the servlet 
//to see the list of archived tenders.
function CheckArchivedDates()
{
	//alert("I am in CheckArchiveDates");
	var FromDateObj = document.ArchiveTender.FromDate;
	var ToDateObj = document.ArchiveTender.ToDate;
	if (FromDateObj.value  == "") 
	{
		alert("Enter From Date.");
	    FromDateObj.focus();
	    return false;   
	 } 

	 if(CheckDateFormat(FromDateObj.value) == false)
	 {
		  alert("Enter From Date in dd-mm-yyyy format. Click the picture to display the calender.");
		  FromDateObj.focus();
		  return false;  
	 }
	 if (ToDateObj.value  == "") 
	 {
	    alert("Enter To Date.");
	    ToDateObj.focus();
	    return false;   
	 } 
	 if(CheckDateFormat(ToDateObj.value) == false)
	 {
		  alert("Enter To Date in dd-mm-yyyy format. Click the picture to display the calender.");
		  ToDateObj.focus();
		  return false;   
	 }

	 document.ArchiveTender.action ="ArchiveTenderList";
	 return true;
}//Ends CheckArchivedDates()


//Function to check name of uploading file
function CheckFileUpload() 
{
//	alert("I am in File Checking");
	var arr = document.frmupload.UploadFile.value.split("\\");
	var FileName = arr[arr.length-1].split(".")[0];
	if(FileName == "")
	{
		alert("Enter filename ");
		document.frmupload.UploadFile.focus();
		document.frmupload.UploadFile.select();
		return false;

	}
	var ext = arr[arr.length-1].split(".")[1];
	if(ext == null)
	{
		alert("Invalid filename ");
		document.frmupload.UploadFile.focus();
		document.frmupload.UploadFile.select();
		return false;
	}

	ext = ext.toLowerCase();
	var UploadFile = FileName+"." +ext;
	if(ext != "pdf" && ext != "zip")
	{
		alert("Invalid filename " + UploadFile + " Enter pdf and zip files only");
		document.frmupload.UploadFile.focus();
		document.frmupload.UploadFile.select();
		return false;
	}
	if(UploadFile.indexOf(" ")!=-1)
	{
		alert("Invalid filename " + UploadFile + " Spaces not allowed");
		document.frmupload.UploadFile.focus();
		document.frmupload.UploadFile.select();
		return false;
	
	}
	
	return true;
}


/*function ValidateDates()
{
	
	if(IsValidEntry(document.ArchiveTender.FromDateYear, 4, 4,"0123456789", "Enter Year") && 
		IsValidEntry(document.ArchiveTender.ToDateYear, 4, 4,"0123456789", "Enter Year"))
      	return true; 
	else 
	  	return false;
}

*/
function ReturnHome()
{
		document.TenderList.action="HomePage" ;

}

//This function is used to extract all data from two forms and to call the servlet
//InsertAnnexureData on clicking the submit button.This is used here because of
//mutipart form data encoding type is used for uploading file.
/*function AnnexSubt()
{
		var arr = document.frmupload.UploadFile.value.split("\\");
		var FileName = arr[arr.length-1].split(".")[0];
		var ext = arr[arr.length-1].split(".")[1];
		ext = ext.toLowerCase();
		var UploadFile = FileName+"." +ext;
	
		var AnnexureNo = document.frmAnnexure.AnnexureNo.value;
		var TenderNo = document.frmAnnexure.TenderNo.value;
		var AnnexureDesc = document.frmAnnexure.AnnexureDesc.value;

		document.frmupload.action="InsertAnnexureData?AnnexureNo="+AnnexureNo+"&TenderNo="+TenderNo+"&AnnexureDesc="+AnnexureDesc+"&UploadFile=" + UploadFile ;
}

//This function is used  for validating annexure details
function AnnexValidate()
{
		if(IsValidEntry(document.frmAnnexure.AnnexureNo, 5, 100,"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ/ ", "Enter Annexure Number") && 
          IsValidEntry(document.frmAnnexure.AnnexureDesc, 3, 1000,"", "Enter Annexure Description") && 
		  CheckTenderNo(document.frmAnnexure) && CheckFileUpload() 
		 )
		   	
		 {
			 if(confirm("Check properly before uploading.File once uploaded could not be changed.Do you sure to upload?"))
			 {
			  	AnnexSubt();
			  	return true; 
			 }
			 else 
				 return false;
		 }
	      
		 else 
			return false;
} 
*/


//This function is used to extract all data from two forms and to call the servlet
//InsertCorrigData on clicking the submit button.This is used here because of
//mutipart form data encoding type is used for uploading file.
function CorrigSubt()
{
		var arr = document.frmupload.UploadFile.value.split("\\");
		var FileName = arr[arr.length-1].split(".")[0];
		var ext = arr[arr.length-1].split(".")[1];
		ext = ext.toLowerCase();
		var UploadFile = FileName+"." +ext;
	
		var CorrigNo = document.frmCorrig.CorrigNo.value;
		var TenderNo = document.frmCorrig.TenderNo.value;
		var docType = document.frmCorrig.CorrigDesc.value;
		//alert("TenderNo :"+TenderNo)
		var CorrigDesc = document.frmCorrig.CorrigDesc.value;
		var TenderType = document.frmCorrig.TenderType.value;

		document.frmupload.action="InsertCorrigData?CorrigNo="+CorrigNo+"&TenderNo="+TenderNo+"&CorrigDesc="+CorrigDesc+"&UploadFile=" + UploadFile+"&TenderType="+TenderType+"&docType="+docType ;
}

//This function is used to validate Corrigendum details
function CorrigValidate()
{
		var TenderType = document.frmCorrig.TenderType.value;
		if(
			  IsValidEntry(document.frmCorrig.CorrigNo, 5, 100,"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ/_ ", "Enter Corrigendum Number") && 
	           CheckDocument(document.frmCorrig) &&
			  CheckTenderNo(document.frmCorrig) && CheckFileUpload() 
		  )
		   	//IsValidEntry(document.frmCorrig.CorrigDesc, 3, 1000,"", "Enter Corrigendum Description")
		 {
			if(confirm("Check properly before uploading.File once uploaded could not be changed.Do you sure to upload?"))
			 {
			  	CorrigSubt();
			  	return true; 
			 }
			 else
				 return false;
		 }
	      
		 else 
			return false;
} 

//This function is used to check Tender Number
function CheckTenderNo(objForm)
{
	box = objForm.TenderNo;
	Tender = box.options[box.selectedIndex].value;
	if (Tender == "")
	{
		alert("Select Tender Number");
		objForm.TenderNo.focus();
		return false
	}
	return true;
		
}

function CheckDocument(objForm)
{
	box = objForm.CorrigDesc;
	Document = box.options[box.selectedIndex].value;
	if (Document == "")
	{
		alert("Select Document Type");
		objForm.CorrigDesc.focus();
		return false
	}
	return true;
		
}

//This function is used to check UserType
function CheckUserType(objForm)
{
	box = objForm.UserType;
	UserType = box.options[box.selectedIndex].value;
	if (UserType == "")
	{
		alert("Select User Type");
		objForm.UserType.focus();
		return false
	}
	return true;
		
}

//This function is used to check User Location
function CheckUserLocation(objForm)
{
	box = objForm.Location;
	Location = box.options[box.selectedIndex].value;
	if (Location == "")
	{
		alert("Select Location");
		objForm.Location.focus();
		return false
	}
	return true;
		
}
//This function is used to extract all user data and to call the servlet
//InsertUserData on clicking the submit button.
function UserSubt()
{
		var UserID = document.frmCreateUser.UserID.value;
		var UserName = document.frmCreateUser.UserName.value;
		var Passwd = document.frmCreateUser.Passwd.value;
		//alert(Passwd);
		var UserType = document.frmCreateUser.UserType.value;
		var Location = document.frmCreateUser.Location.value;

		document.frmCreateUser.action="InsertUserData?UserID="+UserID+ "&UserName="+UserName+"&Passwd="+Passwd+"&UserType="+UserType+"&Location=" + Location ;
}

function NitSub()
{
	if(document.frmCreateNIT.nitType.value=="")
	{
		alert("Enter NIT type!!");
		return false;
	}else if(document.frmCreateNIT.nitDesc.value=="")
	{
		alert("Enter NIT Description!!");
		return false;
	}else
	{

		var nittype = document.frmCreateNIT.nitType.value;
		var nitdesc = document.frmCreateNIT.nitDesc.value;
		

		document.frmCreateNIT.action="InsertNIT?nittype="+nittype+ "&nitdesc="+nitdesc ;
		return true;
}
}

function DocSub()
{
	if(document.frmCreateDoc.docType.value=="")
	{
		alert("Enter Document type!!");
		return false;
	}else if(document.frmCreateDoc.docDesc.value=="")
	{
		alert("Enter Document Description!!");
		return false;
	}else
	{

		var doctype = document.frmCreateDoc.docType.value;
		var docdesc = document.frmCreateDoc.docDesc.value;
		

		document.frmCreateDoc.action="InsertDocument?doctype="+doctype+ "&docdesc="+docdesc ;
		return true;
		
}
}




//This function is used for validating User details
function UserValidate()
{
		//alert("I am in UserValidate of script");
		if(IsValidEntry(document.frmCreateUser.UserID, 1, 5,"0123456789", "Enter User ID") &&
			IsValidEntry(document.frmCreateUser.UserName, 5, 100,"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ/_ ", "Enter User Name") && 
			CheckUserType(document.frmCreateUser) &&
			CheckUserLocation(document.frmCreateUser)
		 )
		   	
		 {
			if(confirm("Check properly before Creating User. Sure to create?"))
			 {
			  	UserSubt();
			  	return true; 
			 }
			 else
				 return false;
		 }
	      
		 else 
			return false;
} 

//This function calls the servlet to add New User
function AddUser()
{	
	document.UserList.action = "CreateUser";
}

//This function calls the servlet to modify a User
function ModifyUser()
{
	for (var i=0; i < document.UserList.UserID.length; i++)
   {	
	   if (document.UserList.UserID[i].checked)
      {
			document.UserList.action = "ModifyUser";
			return true;
      }
   }	

	alert("No user selected to modify");
	return false;

}

//This function calls the servlet to delete a User
function DeleteUser()
{
	for (var i=0; i < document.UserList.UserID.length; i++)
   {	
	   if (document.UserList.UserID[i].checked)
      {
			if(confirm("Sure to delete user?"))
			{
				 document.UserList.action = "DeleteUser";
				  return true;
			}
			else
				return false;
      }
   }	

	alert("No user selected to delete");
	return false;

}

function addNitType()
{	
	document.NitMas.action = "CreateNIT";
}

//This function calls the servlet to modify a User
function ModifyNit()
{
	for (var i=0; i < document.NitMas.NITTYPE.length; i++)
   {	
	   if (document.NitMas.NITTYPE[i].checked)
      {
			document.NitMas.action = "ModifyNIT";
			return true;
      }
   }	

	alert("No user selected to modify");
	return false;

}

//This function calls the servlet to delete a User
function DeleteNit()
{
	for (var i=0; i < document.NitMas.NITTYPE.length; i++)
   {	
	   if (document.NitMas.NITTYPE[i].checked)
      {
			if(confirm("Sure to delete?"))
			{
				 document.NitMas.action = "DeleteNIT";
				  return true;
			}
			else
				return false;
      }
   }	

	alert("No NIT type selected to delete!!");
	return false;

}

function addDocType()
{	
	document.DocMas.action = "CreateDocument";
}

//This function calls the servlet to modify a User
function ModifyDoc()
{
	for (var i=0; i < document.DocMas.DOCUMENTTYPE.length; i++)
   {	
	   if (document.DocMas.DOCUMENTTYPE[i].checked)
      {
			document.DocMas.action = "ModifyDocument";
			return true;
      }
   }	

	alert("No user selected to modify");
	return false;

}

//This function calls the servlet to delete a User
function DeleteDoc()
{
	for (var i=0; i < document.DocMas.DOCUMENTTYPE.length; i++)
   {	
	   if (document.DocMas.DOCUMENTTYPE[i].checked)
      {
			if(confirm("Sure to delete?"))
			{
				 document.DocMas.action = "DeleteDocument";
				  return true;
			}
			else
				return false;
      }
   }	

	alert("No document type selected to delete!!");
	return false;

}

//This function is used to validate the Login form
/*function LoginValidate()
{
	if(IsValidEntry(document.Login.name, 4, 20,"ABCDEFGHIJKLMNOPQRSTUVWXYZ_ ", "Enter User Name") && IsValidEntry(document.forms[0].passwd, 3, 75,"", "Enter Password"))
      	return true; 
	else 
	  	return false;
}
*/

//This function is used to extract all data from two forms and to call the servlet
//InsertTenderData on clicking the submit button.This is used here because of
//mutipart form data encoding type is used for uploading file.
function TenderSubt()
{
	//alert("I am in TenderSubt");
		var arr = document.frmupload.UploadFile.value.split("\\");
		var FileName = arr[arr.length-1].split(".")[0];
		var ext = arr[arr.length-1].split(".")[1];
		ext = ext.toLowerCase();
		var UploadFile = FileName+"." +ext;
	
	//escape() function is used for URL encoding
		var TenderNo = escape(document.frmTender.TenderNo.value);
		//var desc = replace(document.frmTender.TenderDesc.value);
		var desc = replace(document.frmTender.TenderDesc.value,"'","''");
		//alert(desc1);
		//var position = desc.indexOf("'");
		//alert(position);
		//var character = desc.charAt(position);
		//alert(character);
		var TenderDesc = escape(desc);
		//alert(TenderDesc);

		var TenderType = document.frmTender.TenderType.value;
		var nitType = document.frmTender.nitType.value;

		var TenderPublDate = ChangeDateFormat(document.frmTender.TenderPublDate.value);
		var TenderAcceptDate = ChangeDateFormat(document.frmTender.TenderAcceptDate.value);

		var TenderAcceptTimeH= document.frmTender.TenderAcceptTimeH.value;
		var TenderAcceptTimeM= document.frmTender.TenderAcceptTimeM.value;

		var TenderOpenDate = ChangeDateFormat(document.frmTender.TenderOpenDate.value);

		var TenderOpenTimeH= document.frmTender.TenderOpenTimeH.value;
		var TenderOpenTimeM= document.frmTender.TenderOpenTimeM.value;
		var URL = "InsertTenderData?TenderNo="+TenderNo+"&TenderDesc="+ TenderDesc+
			"&TenderPublDate=" + TenderPublDate +
			"&TenderAcceptDate=" + TenderAcceptDate + "&TenderAcceptTimeH=" + TenderAcceptTimeH + "&TenderAcceptTimeM=" + TenderAcceptTimeM +
		    "&TenderOpenDate=" + TenderOpenDate + "&TenderOpenTimeH=" + TenderOpenTimeH + "&TenderOpenTimeM=" + TenderOpenTimeM +
		    "&UploadFile=" + UploadFile + "&TenderType=" + TenderType+"&nitType="+nitType;


		document.frmupload.action= URL;
}

//This function is used for validating Tender details
function TenderValidate()
{
		//alert("I am in Validate of script");
		var TenderType = document.frmTender.TenderType.value;
		//alert("Tender Type" + TenderType);

		if(IsValidEntry(document.frmTender.TenderNo, 5, 100,"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ/_ ", "Enter Tender Number") && 
          IsValidEntry(document.frmTender.TenderDesc, 5, 1000,"", "Enter Tender Description") && 
		  PublDateValidate() && AcceptDateValidate() && OpenDateValidate() && CheckFileUpload() 
		 ) 
		   	
		 {
			if(confirm("Check properly before uploading.File once uploaded could not be changed.Are you sure to upload?"))
			 {
			  	TenderSubt();
			  	return true; 
			 }
			 else
				 return false;
		 }
	      
		 else 
			return false;
} 

//Function to check the correct date
function checkCorrectDate(objDay,objMonth,objYear)
{
  var DaysInMonth = 31;
  var MonthEntered = objMonth;;
  var YearEntered = objYear;
  
  if (MonthEntered == 4 || MonthEntered == 6 || MonthEntered == 9 || MonthEntered == 11) DaysInMonth = 30;
  if (MonthEntered == 2 && (YearEntered/4) != Math.floor(YearEntered/4))	DaysInMonth = 28;
  if (MonthEntered == 2 && (YearEntered/4) == Math.floor(YearEntered/4))	DaysInMonth = 29;
  
  if(objDay > DaysInMonth)
  {
    return false;
  }
  return true;
}

// checking for future date
function checkFutureDate(objDay,objMonth,objYear)
{
	var todayDt=document.frmTender.todayDt.value;
	var dateEntered = new Date(objYear, objMonth-1, objDay);
	var dateToDay = new Date(parseInt(todayDt));
	if(dateEntered > dateToDay)
	{  
	  return true;
	}
	return false;
}

// checking for future date
function checkPastWeekDate(objDay,objMonth,objYear)
{
	var todayDt=(document.frmTender.todayDt.value-604800000);
//alert("Past Current Date:-"+todayDt)
	var dateEntered = new Date(objYear, objMonth-1, objDay);
	var dateToDay = new Date(parseInt(todayDt));
	//alert(dateToDay)
	if(dateEntered < dateToDay)
	{  
	  return true;
	}
	return false;
}


//Function to validate the Tender Publishing  date
function PublDateValidate()
{

 var PublDate = document.frmTender.TenderPublDate.value;
 var PublYear = PublDate.substr(6,4);
 var PublMonth =PublDate.substr(3,2);
 var PublDay = PublDate.substr(0,2);


  if (PublDate  == "") 
  {
    alert("Enter Tender Publishing Date.");
    document.frmTender.TenderPublDate.focus();
    return false;   
  } 

   if(CheckDateFormat(PublDate) == false)
  {
	  alert("Enter Publ Date in dd-mm-yyyy format.");
	  document.frmTender.TenderPublDate.focus();
	  return false;   
  }
  
//Checks the correct date  
  if(!checkCorrectDate(PublDay,PublMonth,PublYear))
 {
    alert("Enter valid Date.")
    document.frmTender.TenderPublDate.focus();
    return false;
 } 
 
 //Checks Future Date
 if(checkFutureDate(PublDay,PublMonth,PublYear))
{
    alert("Sorry! future date can not be accepted.");
   	document.frmTender.TenderPublDate.focus();
   	return false;
}

//Checks Past week Future Date
 if(checkPastWeekDate(PublDay,PublMonth,PublYear))
{
    alert("Sorry! Publishing  date can not be less than 1 week date.");
   	document.frmTender.TenderPublDate.focus();
   	return false;
}
  return true;
}


//Function to validate the Tender Acceptance date
function AcceptDateValidate()
{

  var AcceptDate = document.frmTender.TenderAcceptDate.value;
  var AcceptYear = AcceptDate.substr(6,4);
  var AcceptMonth =AcceptDate.substr(3,2);
  var AcceptDay = AcceptDate.substr(0,2);


  if (AcceptDate  == "") 
  {
    alert("Enter Tender Acceptance Last Date.");
    document.frmTender.TenderAcceptDate.focus();
    return false;   
  } 
  //Checks the correct date  
  if(!checkCorrectDate(AcceptDay,AcceptMonth,AcceptYear))
  {
    alert("Enter valid Date.")
    document.frmTender.TenderAcceptDate.focus();
    return false;
  } 

//Checks the Accept date should be greater than Publ Date

   var TenderAcceptDate = new Date(AcceptYear, AcceptMonth-1, AcceptDay);

   var PublDate = document.frmTender.TenderPublDate.value;
   var PublYear = PublDate.substr(6,4);
   var PublMonth =PublDate.substr(3,2);
   var PublDay = PublDate.substr(0,2);
	
   var TenderPublDate = new Date(PublYear, PublMonth-1, PublDay);
	

	if(TenderAcceptDate < TenderPublDate)
	{  
	  alert("Sorry! Tender Accept date could not be less than Tender Publ Date.");
	  document.frmTender.TenderAcceptDate.focus();
	  return false;
	}

	if(!checkFutureDate(AcceptDay,AcceptMonth,AcceptYear))
	{
		alert("Sorry! Acceptance Last Date can not be Past Date.");
		document.frmTender.TenderAcceptDate.focus();
		return false;
	}
	
	return true;

}

//Function to validate the Tender Opening  date
function OpenDateValidate()
{

  var OpenDate = document.frmTender.TenderOpenDate.value;
  var OpenYear = OpenDate.substr(6,4);
  var OpenMonth =OpenDate.substr(3,2);
  var OpenDay = OpenDate.substr(0,2);

  if (OpenDate  == "") 
  {
    alert("Enter Tender Open Date.");
    document.frmTender.TenderOpenDate.focus();
    return false;   
  } 
 
  //Checks the Open date should be greater than Publ Date

	var TenderOpenDate = new Date(OpenYear, OpenMonth-1, OpenDay);
	
	var PublDate = document.frmTender.TenderPublDate.value;
	var PublYear = PublDate.substr(6,4);
	var PublMonth =PublDate.substr(3,2);
	var PublDay = PublDate.substr(0,2);
	
	var TenderPublDate = new Date(PublYear, PublMonth-1, PublDay);
	

	if(TenderOpenDate < TenderPublDate)
	{  
	  alert("Sorry! Tender Open date could not be less than Tender Publ Date.");
	  document.frmTender.TenderOpenDate.focus();
	  return false;
	}

	if(!checkFutureDate(OpenDay,OpenMonth,OpenYear))
	{
		alert("Sorry! Opening Date can not be Past Date.");
		document.frmTender.TenderOpenDate.focus();
		return false;
	}

	return true;

}

//Function to add new Annexure.
/*function AddNewAnnexure()
{

	document.AnnexureList.action = "../servlet/AnnexureDetail";
	//document.AnnexureList.submit();
}


//Function to delete Annexure.
function DeleteAnnexure()
{
	
	var checkBoxArr = getSelectedCheckboxValue(document.forms("AnnexureList").remove);
	if (checkBoxArr.length == 0)
	{
	 	alert("No Annexures selected"); 
	 	return false;
	 	
	 }

	
  	if (confirm("Are you sure to delete all items")) 
  	{
		document.AnnexureList.action = "../servlet/DeleteAnnexureServlet";
		//document.AnnexureList.submit();
		return true;
		
		//res.sendRedirect(passString);
  		
    }
    return false;
}

*/
//Function to add new Corrigendum.
function AddNewCorrig()
{
	document.CorrigList.action = "CorrigDetail";
}

//Function to delete Corrigendum.
/*
function DeleteCorrig()
{
	
	var checkBoxArr = getSelectedCheckboxValue(document.forms("CorrigList").remove);
	if (checkBoxArr.length == 0)
	{
	 	alert("No Corrigendums selected"); 
	 	return false;
	 	
	 }
	
  	if (confirm("Are you sure to delete all items")) 
  	{
		document.CorrigList.action = "../servlet/DeleteCorrigServlet";
		//document.CorrigList.submit();
		return true;
		
		//res.sendRedirect(passString);
  		
    }
    return false;
}

*/

//Function to add new Tender.
function AddNewTender()
{
	document.TenderList.action = "TenderDetail";
}


//Function to delete Tender.
function DeleteTender()
{
	
	var checkBoxArr = getSelectedCheckboxValue(document.forms("TenderList").remove);
	if (checkBoxArr.length == 0)
	{
	 	alert("No Tender selected"); 
	 	return false;
	 	
	 }
	
  	if (confirm("Are you sure to delete all items")) 
  	{

		document.TenderList.action = "DeleteTenderServlet";
		return true;
  		
    }
    return false;
}

//Function to delete Archived Tender.
function DeleteArchiveTender()
{
	//alert(" I am in DeleteArchiveTender");
	
//	alert(document.forms("AnnexureList").remove[0].value); 
//	alert(getSelectedCheckbox(document.AnnexureList.remove))
	
	var checkBoxArr = getSelectedCheckboxValue(document.forms("ArchiveTenderList").remove);
	if (checkBoxArr.length == 0)
	{
	 	alert("No Tender selected"); 
	 	return false;
	 	
	 }
	 //alert("I am after if");
	
  	if (confirm("Are you sure to delete all items")) 
  	{
  /*	var passString="../servlet/DeleteAnnexureServlet?";
		var noOfAnnexure=checkBoxArr.length;
		var isFirst=true;
		for(count=0;count<noOfAnnexure;count++)
		{
			if(isFirst == false)
			{
				passString+="&";
				
			}
			isFirst=false;
			passString+="RemoveList="+checkBoxArr[count];
			//count++;
			
		}
		alert(passString);
		document.AnnexureList.action = passString
*/
		document.ArchiveTenderList.action = "DeleteArchiveTenderServlet";
		//document.TenderList.submit();
		return true;
		
		//res.sendRedirect(passString);
  		
    }
    return false;
}


////Function to Archive Tender after the expiry of Tender Opening date.
function ArchiveTender()
{
	//alert(" I am in DeleteTender");
	
//	alert(document.forms("AnnexureList").remove[0].value); 
//	alert(getSelectedCheckbox(document.AnnexureList.remove))
	
	var checkBoxArr = getSelectedCheckboxValue(document.forms("TenderList").remove);
	if (checkBoxArr.length == 0)
	{
	 	alert("No Tender selected"); 
	 	return false;
	 	
	 }
	 //alert("I am after if");
	
  	if (confirm("Are you sure to Archive all items")) 
  	{
  /*	var passString="../servlet/DeleteAnnexureServlet?";
		var noOfAnnexure=checkBoxArr.length;
		var isFirst=true;
		for(count=0;count<noOfAnnexure;count++)
		{
			if(isFirst == false)
			{
				passString+="&";
				
			}
			isFirst=false;
			passString+="RemoveList="+checkBoxArr[count];
			//count++;
			
		}
		alert(passString);
		document.AnnexureList.action = passString
*/
		document.TenderList.action = "ArchiveTenderServlet";
		//document.TenderList.submit();
		return true;
		
		//res.sendRedirect(passString);
  		
    }
    return false;
}


//Function to reset all fields in Corrigendum Details form.
function ResetCorrigFields()
{
	var frmobj=document.frmCorrig;
	

	frmobj.TenderNo.selectedIndex=0;;
	frmobj.CorrigNo.value='';
	frmobj.CorrigDesc.value='';


	document.frmupload.UploadFile.value = "Select a File...";

	return true;

}

//Function to reset all fields in Annexure Details form.
function ResetAnnexFields()
{
	var frmobj=document.frmAnnexure;
	

	frmobj.TenderNo.selectedIndex=0;;
	frmobj.AnnexureNo.value='';
	frmobj.AnnexureDesc.value='';


	document.frmupload.UploadFile.value ="Select a File...";

	return true;

}

//Function to reset all fields in Tender Details form.
function ResetTenderFields()
{
	var frmobj=document.frmTender;
	var today = new Date();
	
//For DD Details
	frmobj.TenderNo.value='';
	frmobj.TenderDesc.value='';
	frmobj.TenderPublDate.value='';
	frmobj.TenderAcceptDate.value='';
	frmobj.TenderOpenDate.value='';


	return true;

}

//function to select value

function selectvalue()
{
	var Select=document.frmCreateUser.Location
	//alert(Select[Select.selectedIndex].value)
	var code=Select[Select.selectedIndex].value;
	//alert(code)
	
	if(code=="Others")
	{
	
	document.frmCreateUser.Others.disabled=false
	}
	else{
	document.frmCreateUser.Others.value=""
	document.frmCreateUser.Others.disabled=true
	}
}

function addtion()
{
	alert("1")
	alert(document.frmCreateUser.Others.value)
}



function XmlDataBase1()
{
	
  var Ajax_Others = document.frmCreateUser.Others.value;
   if(Ajax_Others=="")
   {
   alert("Enter City Name");
   }
   else{
   var url="CityAddition?Ajax_Others="+Ajax_Others
  // alert(url);
   
    if (window.XMLHttpRequest)
    {
        // browser has native support for XMLHttpRequest object
        req = new XMLHttpRequest();
    }
    else if (window.ActiveXObject)
    {
        // try XMLHTTP ActiveX (Internet Explorer) version
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    
    if(req)
    {	
        req.onreadystatechange = notesResponseHandler;
        req.open("GET", url, true);
        req.setRequestHeader("content-type","application/x-www-form-urlencoded");
        req.send(null);
    }
    else
    {
        alert('Your browser does not seem to support XMLHttpRequest.');
    }
	}
}

function notesResponseHandler()
{
  if (req.readyState == 4)
  {
	if (req.status == 200)
    {
      	var result=req.responseText;
    	//alert("result:"+result);
        var notes = req.responseXML.getElementsByTagName('HQXML')[0];
       //alert("notes:"+notes);
      if(notes==null)
      {
      alert("city already exist");
      }
        var msg=notes.getElementsByTagName('msg')[0];
       // alert("alert:"+msg.childNodes[0].nodeValue);
        var count=notes.getElementsByTagName('count')[0];
      
        //alert("count:"+count.childNodes[0].nodeValue);
        
         var combobox = document.getElementById("combobox");
         
          //alert("length1:"+combobox.length);
         for(var z=1;z<combobox.length;z)
         {
           combobox.remove(z);
         }
  
        for(var i=0;i<count.childNodes[0].nodeValue;i++)
        {
        var city_name=notes.getElementsByTagName('city')[i];
        combobox.options.add(new Option(city_name.childNodes[0].nodeValue,city_name.childNodes[0].nodeValue));//This code will also work. :)
        }
        combobox.options.add(new Option("Others","Others"))															                       
     }
     else
     {
     	alert("There was a problem retrieving the XML data:\n" +
        req.statusText);
     }
  }
}


