function trim(b){
var i=0;
while(b.charAt(i)==" ")
{
i++;
}
b=b.substring(i,b.length);
len=b.length-1;
while(b.charAt(len)==" "){
len--;
}
b=b.substring(0,len+1);
return b;
}

function isCharsInBag (s, bag)
  {
    var i;
    // Search through string's characters one by one.
    // If character is in bag, append to returnString.

    for (i = 0; i < s.length; i++)
    {
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) return false;
    }
    return true;
 }

//function to check valid zip code
function isZIP(s)
  {
    /*if (isCharsInBag (s, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789") == false)
    {
        return false;
    }*/
    return true;
 }

//function to check valid Telephone,. Fax no. etc
function isPhone(s)
  {
    if (isCharsInBag (s, "- +().,/;0123456789") == false)
    {
        return false;
    }
    return true;
 }

function isEmpty(s)
{
		  s=trim(s);
		  return ((s == null) || (s.length == 0))
}

//function to check valid email id
function checkmailadd(s)
{
	var i;
	var found1=false;
	var found2=false;
	var count1=0;
	for (i = 0; i < s.length; i++)
	    {   
			
      	  
      	  // Check that current character isn't whitespace.
	      if(s.charAt(i)== ' ') {found1=true;found2=true;count1=2;}
		  if(s.charAt(i)== '@') {found1=true;count1++;}
      	  if(s.charAt(i)== '.'){ found2=true; }
	   }
	if(found1==true && found2==true)
	{	
		if(count1 > 1)
			return false;
		else
		    return true;
		}
	else
		return false;
return true;
}


function isDate(strdate) { 
 // alert(strdate)
  var datedelimiter = '/';
  var datesplit = strdate.split(datedelimiter)
  if (datesplit.length > 3) {return false;}
  var month = 0; 
  month = datesplit[0];
  if (month < 1 || month >12 ) {return false;}
  if (isNaN(datesplit[0])) {return false;}
  else if (isNaN(datesplit[1])) {return false;}
  else if (isNaN(datesplit[2])) {return false;}
  else {
    //var year = parseInt(datesplit[2],10);
    
    var yearLn = (datesplit[2].length);
    var year= datesplit[2];
    	
    if (yearLn==1){return false;}
    if (yearLn==3){return false;}
    if (year<1){return false;}
    if (yearLn==2){
         year = '20'+ year
        
         }

   //var year = year;
   // alert(year)
    if(year<2000) {return false;}
    if(year>2999) {return false;}

    // var year = (datesplit[2],10);

    var day = parseInt(datesplit[1],10);
     if(day<0){return false;}
	if (day>31){return false;}
    if ((day > 30) && ((month == 4) || (month == 6) || (month == 9) || (month == 11))) {return false;}
    if (month == 2) {  // This calculates the basic leap year no matter the format, i.e. 2000 or 00. 
		var leap = ((year/4) == parseInt(year/4))
		if (leap) {if (day > 29) {return false;}
		}else {if (day > 28) {return false;}
      }
    }
  } 
  return true;
}

function isbigdateTime(StDate, StTime, EdDate, EdTime)
 {
//alert('start' + StTime + 'end' + EdTime)
	//var DTDelimiter = ' ';
	var DateDelimiter='/';
	var TimeDelimiter=':';
	
	//Split start date and time.
	//var StDTSplit = StDateTime.split(DTDelimiter);
	//if (StDTSplit.length>2){return false;}
	//var StDate=StDTSplit[0];
	//var StTime=StDTSplit[1];
	var StDSplit = StDate.split(DateDelimiter);//Splite date into MM/DD/YYYY
	//alert(StDSplit.length)
	if (StDSplit.length>3){return false;}
	var StMM=parseInt(StDSplit[0]);
	var StDD=parseInt(StDSplit[1]);
	var StYY=parseInt(StDSplit[2]);
	var StTSplit = StTime.split(TimeDelimiter);//Splite time into H:M
	if (StTSplit.length>2){return false;}
	var StH=StTSplit[0];
	var StM=StTSplit[1];
	//alert('StMM' + StMM + '  StDD' + StDD + '  StYY' + StYY + '  StH' + StH + '  StM' 

//+ StM);
	
	//Split end date and time.
	//var EdDTSplit = EdDateTime.split(DTDelimiter);
	//if (EdDTSplit.length>2){return false;}
	//var EdDate=EdDTSplit[0];
	//var EdTime=EdDTSplit[1];
	var EdDSplit = EdDate.split(DateDelimiter);//Splite date into MM/DD/YYYY
	if (EdDSplit.length>3){return false;}
	
	var EdMM=parseInt(EdDSplit[0]);
	var EdDD=parseInt(EdDSplit[1]);
	var EdYY=parseInt(EdDSplit[2]);
	var EdTSplit = EdTime.split(TimeDelimiter);//Splite time into H:M
	//alert(EdTSplit.length)
	if (EdTSplit.length>2){return false;}
	var EdH=EdTSplit[0];
	var EdM=EdTSplit[1];
	//alert('time'+ EdH)
	//alert('EdMM' + EdMM + '  EdDD' + EdDD + '  EdYY' + EdYY + '  EdH' + EdH + '  EdM' 

//+ EdM);
	
	if(StYY>EdYY){
	    form1.txtDateEnd.focus()
		return false;
	}
	else if(StYY==EdYY && StMM>EdMM){return false;}	
	else if(StYY==EdYY && StMM==EdMM && StDD>EdDD){return false;}	
	else if(StYY==EdYY && StMM==EdMM && StDD==EdDD && StH>EdH){
		//alert("time HH")
		form1.selEndTime.focus(); 
		return false;
	}else if(StYY==EdYY && StMM==EdMM && StDD==EdDD && StH==EdH && StM>=EdM){
		//alert("time MM")
		form1.selEndTime.focus(); 
		//form.selEndTime.focus();
		return false;
	}	return true;	
}

function OpenWin(width,height,URL,title)
{
	window.open(URL,'Myauditions',"height=" + height + ",width=" + width + ",toolbar=no,location=no,directories=no,status=no,menubar=no,,scrollbars=yes,resizable=yes");
}


function SelectOption(pObj,pSelOption)
{
	for(var i=0;i<pObj.options.length;i++)
	{
		if(pObj.options[i].value==pSelOption)
		{
			pObj.options[i].selected=true;
		}
	}
}

function trim(b)
{
	var i=0;
	while(b.charAt(i)==" ")
	{
	i++;
	}
	b=b.substring(i,b.length);
	len=b.length-1;
	while(b.charAt(len)==" "){
	len--;
	}
	b=b.substring(0,len+1);
	return b;
}

//function to open popup window with specified size
function jPopup(sJName, sJURL, sJWidth, sJHeight, sJToolbar)
{
	if (trim(sJToolbar) == "")
	{
		sJToolbar = "no";
	}
	sJName = window.open(sJURL, sJName, 'toolbar=' + sJToolbar + ',status=no,width=' + sJWidth +',height=' + sJHeight);
}

//FUNCTION TO CHECK EMPTY SPACES AND RETURN ERROR MESSAGE
function validateSpaces(var1, var2){
	var fld = "";
	fld = trim(var1.value);
	if(fld == ""){
		alert("Please enter a value in \"" +var2 + "\"");
		var1.focus();
		return 0;
	}
	return 1;
}

//Validation for numeric fields
function validateNumeric(var1, var2){
	var fld = "";
	fld = var1.value;
	if ((isCharsInBag (fld, "0123456789") == false || fld < 1) && fld != ""){
		alert("Please enter a numeric value for the \"" + var2 + "\" field.");
		var1.focus();
		return 0;
	}	
	return 1;
}

//Validation for email fields
function validateEmail(var1, var2){
	var fld = "";
	fld = var1.value;
	if (checkmailadd(fld) == false  && fld != ""){
		alert("Please enter a valid email address in the \"" + var2 + "\" field.");
		var1.focus();
		return 0;
	}
	return 1;
}

//Validation for telephone
function validatePhone(var1, var2){
	var fld = "";
	fld = var1.value;
	if (isPhone(fld) == false  && fld != ""){
		alert("Please enter a valid value in the \"" + var2 + "\" field.");
		var1.focus();
		return 0;
	}
	return 1;
}

//Validation for Zip
function validateZip(var1, var2){
	var fld = "";
	fld = var1.value;
	if (isZIP(fld) == false  && fld != ""){
		alert("Please enter a valid alphanumeric value in the \"" + var2 + "\" field.");
		var1.focus();
		return 0;
	}
	return 1;
}

//Validation for radio buttons
function validateRadio(var1, var2){
	var sCheck = "N";
	for (i = 0; i < var1.length; i++){
		if (var1[i].checked == true){
		  sCheck = "Y";
		}
	}
	if (sCheck != "Y"){
		alert("Please select some option for the \""+ var2 +"\" field.");
		var1[0].focus();
		return 0;
	}
	return 1;
}

//Validation for maxlength
function validateMaxlength(var1, var2, varMaxlength){
	var fld = "";
	fld = var1.value;
	if (fld.length > varMaxlength && fld != ""){
		alert("You can enter maximum of " + varMaxlength + " characters in the \"" + var2 + "\" field.");
		var1.focus();
		return 0;
	}
	return 1;
}

//Validation for percentage
function validatePercentage(var1, var2){
	var fld = "";
	fld = var1.value;
	if (fld > 100 && fld != ""){
		alert("Percentage can't be greater than 100. Please enter valid percentage for the \"" + var2 + "\" field.");
		var1.focus();
		return 0;
	}
	return 1;
}

	
  // This function accepts a string variable and verifies if it is a
  // proper date or not. It validates format matching either
  // mm-dd-yyyy or mm/dd/yyyy. Then it checks to make sure the month
  // has the proper number of days, based on which month it is.	 
  // The function returns true if a valid date, false if not.
  // ******************************************************************	 
  function isDate(dateStr) 
  {

	   var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{2})$/;
	   var matchArray = dateStr.match(datePat); // is the format ok?
	   months= new Array(12);
	   months[0]="Jan";
	   months[1]="Feb";
	   months[2]="Mar";
	   months[3]="Apr";
	   months[4]="May";
	   months[5]="Jun";
	   months[6]="Jul";
	   months[7]="Aug";
	   months[8]="Sep";
	   months[9]="Oct";
	   months[10]="Nov";
	   months[11]="Dec"; 
	  if (matchArray == null) 
	  {
		  alert("Please enter date as either mm/dd/yy or mm-dd-yy.");
		  return false;
	  }
 
	  month = matchArray[1]; // parse date into variables
	  day = matchArray[3];
	  year = matchArray[5];

	  if (month < 1 || month > 12) // check month range
	  { 
		  alert("Month must be between 1 and 12.");
		  return false;
	  }
 
	  if (day < 1 || day > 31) 
	  {
		  alert("Day must be between 1 and 31.");
		  return false;
	  }
 
	  if ((month==4 || month==6 || month==9 || month==11) && day==31) 
	  {
		  alert("Month "+ months[month-1]+" doesn't have 31 days!")
		  return false;
	  }
 
	  if (month == 2)  // check for february 29th
	  {
		  var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		  if (day > 29 || (day==29 && !isleap)) 
		  {
			  alert("February " + year + " doesn't have " + day + " days!");
			  return false;
		  }
	  }
	  return true; // date is valid
  }

  	function ContinentCountry(){
		selval(document.frmReg.Continent, document.frmReg.hideContinent.value );
		jFilterCTR();
		selval(document.frmReg.Country, document.frmReg.hideCountry.value );
	}

	function CountryContinent(){
		jFilterCTR();
		selval(document.frmReg.Country, document.frmReg.CountryID.value);
	}

	//#### Confirmation message on Reset
	function jFConfirmReset(theForm)
	{
		if (confirm("All fields including Profile will be Reset to their default values!") == false)
		{
			return false;
		}
		return true;
	}
	
	

//#### function to submit form 
//Arguments: Action URL, Form name
function jFSubmit(sFURL, theForm)
{
	theForm.action = sFURL;
	theForm.submit();
}

	//#### Confirmation message on Reset
	function jFConfirmResetEdit(theForm)
	{
		if (confirm("All fields including Profile will be Reset to their default values!") == true)
		{
			theForm.reset();
			theForm.State.disabled = false;
			theForm.OtherState.disabled = false;
			setfields();			
		}
	}

	//#### Reset with Confirmation message
	function jFConfirmResetMsg(theForm, sjFMsg)
	{
		/*if (confirm(sjFMsg) == false)
		{
			return false;
		}
		for (i = 0; i < theForm.length; i++)       
		{	
			theForm.elements[i].disabled = false;
		}*/
		setfields();
		if (theForm == document.frmReg)
		{
			//theForm.State.disabled = true;
			//theForm.OtherState.disabled = false;		
		}
		return true;
	}

	function selval(sellist, selvalue)
	{
			for(iVar=0;iVar<sellist.options.length;iVar++)
			{
					if (selvalue == "")
					{
							sellist.selectedIndex = 0;
							return;
					}
					else if (sellist.options[iVar].value == selvalue)
					{
							sellist.selectedIndex = iVar;
							return;
					}
			}
			return;
	}

// ALternate Email validation
	function AltEmailValidation()
	{
		if(document.frmReg.Email_Release[1].checked == true)
		{
			
			if(trim(document.frmReg.AltEmail.value)=="")
			{
				alert("Please enter a valid  Email address");
				document.frmReg.AltEmail.focus();
				return 0;			
			}
			
			if (validateEmail(document.frmReg.AltEmail, "Alternate Email") == 0) {
				document.frmReg.AltEmail.focus();
				return 0;
			}
			
	
		}
		
		
		if(trim(document.frmReg.AltEmail.value)!="")
		{
			
			if (validateEmail(document.frmReg.AltEmail, "Alternate Email") == 0) {
				document.frmReg.AltEmail.focus();
				return 0;
			}	
			
		}
	
		return 1;			
		}

	function EnableAltEmail()
	{

		if(document.frmReg.Email_Release[1].checked == true)
		{
			document.frmReg.AltEmail.disabled=false;
			document.frmReg.AltEmail.style.background='#FFFFFF';
			document.frmReg.AltEmail.style.color = 'black';		
			document.frmReg.Notify.disabled=false;
			document.frmReg.Notify.style.background='#FFFFFF';
			document.frmReg.Notify.style.color = 'black';	
		}else
		{
			document.frmReg.AltEmail.disabled=true;
			document.frmReg.AltEmail.style.background='#C9C9C9';
			//document.frmReg.AltEmail.value='';
			document.frmReg.AltEmail.style.color = 'black';
			document.frmReg.Notify.disabled=true;
			document.frmReg.Notify.style.background='#C9C9C9';
			document.frmReg.Notify.checked=false;
			document.frmReg.Notify.style.color = 'black';
		}
	}

	function Enabledeadline()
	{
		if(document.frmReg.deadlinechk[0].checked == true)
		{
			document.frmReg.DeadlineDay.disabled=false;
			document.frmReg.DeadlineMonth.disabled=false;
			document.frmReg.DeadlineYear.disabled=false;

		}else
		{
			document.frmReg.DeadlineDay.selectedIndex=0;
			document.frmReg.DeadlineMonth.selectedIndex=0;
			document.frmReg.DeadlineYear.selectedIndex=0;
			document.frmReg.DeadlineDay.disabled=true;
			document.frmReg.DeadlineMonth.disabled=true;
			document.frmReg.DeadlineYear.disabled=true;
		}
	}

		function FilterCategory()
			{
				
				var VacType =document.generatehtml.VacType.value;
				var objOne= document.generatehtml.VacCatHidden;
				var VacCat=document.generatehtml.VacCat;
				
				for(i=1;i<document.generatehtml.VacCat.length;i++)
				{
					document.generatehtml.VacCat.options[i]=null;
					i--;
				}
				
				toIndex=1;
				for(i=0;i<objOne.length;i++)
				{
					key= objOne.options[i].value;
					arr=key.split("~");
					//alert(arr[0] + "=" + arr[1] + "-" );
					if (arr[1]==VacType)
					{
						val = objOne.options[i].text;
						if (trim(val) != "")
						{
							VacCat.options[toIndex]=new Option(val,arr[0]);
							toIndex++;
						}
						
					}
				}
			
			}

