// ---------------------------------------------------------------------------|
// qryHowOld                                                                  |
// Description: How old someone is in the format:                             |
// XXX Years XX Months X Weeks X Days                                         |
// Birth Date could be specified like Date.UTC(2002,8,16,17,42,0)             |
//                                                                            |
// Arguments:                                                                 |
//    varAsOfDate: as of date                                                 |
//    varBirthDate: birth date                                                |
//                                                                            |
function qryHowOld(varAsOfDate, varBirthDate)
   {
   var dtAsOfDate;
   var oldyear = 0;
   var dtBirth;
   var dtAnniversary;
   var intSpan;
   var intYears;
   var intMonths;
   var intWeeks;
   var intDays;
   var intHours;
   var intMinutes;
   var intSeconds;
   var strHowOld;

   // get born date
   dtBirth = new Date(varBirthDate);
   
   // get as of date
   dtAsOfDate = new Date(varAsOfDate);

   // if as of date is on or after born date
   if ( dtAsOfDate >= dtBirth )
      {

      // get time span between as of time and birth time
      intSpan = ( dtAsOfDate.getUTCHours() * 3600000 +
                  dtAsOfDate.getUTCMinutes() * 60000 +
                  dtAsOfDate.getUTCSeconds() * 1000    ) -
                ( dtBirth.getUTCHours() * 3600000 +
                  dtBirth.getUTCMinutes() * 60000 +
                  dtBirth.getUTCSeconds() * 1000       )

      // start at as of date and look backwards for anniversary 

      // if as of day (date) is after birth day (date) or
      //    as of day (date) is birth day (date) and
      //    as of time is on or after birth time
      if ( dtAsOfDate.getUTCDate() > dtBirth.getUTCDate() ||
           ( dtAsOfDate.getUTCDate() == dtBirth.getUTCDate() && intSpan >= 0 ) )
         {

         // most recent day (date) anniversary is in as of month
         dtAnniversary = 
            new Date( Date.UTC( dtAsOfDate.getUTCFullYear(),
                                dtAsOfDate.getUTCMonth(),
                                dtBirth.getUTCDate(),
                                dtBirth.getUTCHours(),
                                dtBirth.getUTCMinutes(),
                                dtBirth.getUTCSeconds() ) );

         }

      // if as of day (date) is before birth day (date) or
      //    as of day (date) is birth day (date) and
      //    as of time is before birth time
      else
         {

         // most recent day (date) anniversary is in month before as of month
         dtAnniversary = 
            new Date( Date.UTC( dtAsOfDate.getUTCFullYear(),
                                dtAsOfDate.getUTCMonth() - 1,
                                dtBirth.getUTCDate(),
                                dtBirth.getUTCHours(),
                                dtBirth.getUTCMinutes(),
                                dtBirth.getUTCSeconds() ) );

         // get previous month
         intMonths = dtAsOfDate.getUTCMonth() - 1;
         if ( intMonths == -1 )
            intMonths = 11;

         // while month is not what it is supposed to be (it will be higher)
         while ( dtAnniversary.getUTCMonth() != intMonths )

            // move back one day
            dtAnniversary.setUTCDate( dtAnniversary.getUTCDate() - 1 );

         }

      // if anniversary month is on or after birth month
      if ( dtAnniversary.getUTCMonth() >= dtBirth.getUTCMonth() )
         {

         // months elapsed is anniversary month - birth month
         intMonths = dtAnniversary.getUTCMonth() - dtBirth.getUTCMonth();

         // years elapsed is anniversary year - birth year
         intYears = dtAnniversary.getUTCFullYear() - dtBirth.getUTCFullYear();

         }

      // if birth month is after anniversary month
      else
         {

         // months elapsed is months left in birth year + anniversary month
         intMonths = (11 - dtBirth.getUTCMonth()) + dtAnniversary.getUTCMonth() + 1;

         // years elapsed is year before anniversary year - birth year
         intYears = (dtAnniversary.getUTCFullYear() - 1) - dtBirth.getUTCFullYear();

         }

      // to calculate weeks, days, hours, minutes and seconds
      // we can take the difference from anniversary date and as of date

      // get time span between two dates in milliseconds
      intSpan = dtAsOfDate - dtAnniversary;

      // get number of weeks
      intWeeks = Math.floor(intSpan / 604800000);

      // subtract weeks from time span
      intSpan = intSpan - (intWeeks * 604800000);
      
      // get number of days
      intDays = Math.floor(intSpan / 86400000);

      // subtract days from time span
      intSpan = intSpan - (intDays * 86400000);

      // get number of hours
      intHours = Math.floor(intSpan / 3600000);
    
      // subtract hours from time span
      intSpan = intSpan - (intHours * 3600000);

      // get number of minutes
      intMinutes = Math.floor(intSpan / 60000);

      // subtract minutes from time span
      intSpan = intSpan - (intMinutes * 60000);

      // get number of seconds
      intSeconds = Math.floor(intSpan / 1000);

      // create output string     
      if ( intYears > 0 )
	  {
         if ( intYears > 1 )
            strHowOld = intYears.toString() + ' Years';
		 else
            strHowOld = intYears.toString() + ' Year';
	  	oldyear  += parseInt(intYears);
	  }
	  else
         strHowOld = '';

      if ( intMonths > 0 )
	  {
         if ( intMonths > 1 )
            strHowOld = strHowOld + ' ' + intMonths.toString() + ' Months';
		 else
            strHowOld = strHowOld + ' ' + intMonths.toString() + ' Month';
	  	//oldyear  += parseInt(intMonths)/12;
	  }
      if ( intWeeks > 0 )
	  {
         if ( intWeeks > 1 )
            strHowOld = strHowOld + ' ' + intWeeks.toString() + ' Weeks';
         else
            strHowOld = strHowOld + ' ' + intWeeks.toString() + ' Week';
	  }
      if ( intDays > 0 )
	  {
         if ( intDays > 1 )
            strHowOld = strHowOld + ' ' + intDays.toString() + ' Days';
         else
            strHowOld = strHowOld + ' ' + intDays.toString() + ' Day';
	  	//oldyear  +=  parseInt(intDays)/365;	
	  }
      if ( intHours > 0 )
	  {
         if ( intHours > 1 )
            strHowOld = strHowOld + ' ' + intHours.toString() + ' Hours';
         else
            strHowOld = strHowOld + ' ' + intHours.toString() + ' Hour';
	  	//oldyear  += 0.001;	
	  }
      if ( intMinutes > 0 )
	  {
         if ( intMinutes > 1 )
            strHowOld = strHowOld + ' ' + intMinutes.toString() + ' Minutes';
         else
            strHowOld = strHowOld + ' ' + intMinutes.toString() + ' Minute';
	  	//oldyear  = 0.001;
	  }
      if ( intSeconds > 0 )
	  {
         if ( intSeconds > 1 )
            strHowOld = strHowOld + ' ' + intSeconds.toString() + ' Seconds';
         else
            strHowOld = strHowOld + ' ' + intSeconds.toString() + ' Second';
	  	//oldyear  += 0.001;
	  }
   }
   else
      strHowOld = 'Not Born Yet'

   // return string representation
   return oldyear;
   }   
//                                                                            |
// qryHowOld                                                                  |
// ---------------------------------------------------------------------------|


function OnCheckYear(page,frm,country,lang,exixts)
{
	var form= document.getElementById(frm);	
	var country_id= document.getElementById(country);	
	var lang_id= document.getElementById(lang);	
	var calendar= document.getElementById("calendar");
	var message= document.getElementById("message");
	var c_D= document.getElementById("dob_D");	
	var c_M= document.getElementById("dob_M");	
	var c_Y= document.getElementById("dob_Y");
	var date = new Date();
	var nowmonth = date.getMonth() +1;
	var nowyear = date.getFullYear();
	var nowdate = date.getDate();
	var nowhour = date.getHours();
	var nowminute = date.getMinutes();
	var nowsecond = date.getSeconds();
	var nowmilisecond = date.getMilliseconds();
	var oldyear = 18;//qryHowOld(Date.UTC(nowyear,nowmonth,nowdate,nowhour,nowminute,nowsecond,nowmilisecond),Date.UTC(c_Y.value,parseInt(c_M.value),parseInt(c_D.value)));
	
	//This code for user go to main page have to 01/01/2011 
	//if(c_D.value==01 && c_M.value == 01 && c_Y.value == 2011)
		//document.location = page;
	//else
		//message.style.display = "";
		
	//This code for user over 18 year old
	
		if(country_id.value=="")
		{
			message.style.display = "";
			message.innerHTML = "Please choose country !!! ";
		}
		else if(lang_id.value=="")
		{
			message.style.display = "";
			message.innerHTML = "Please choose language !!! ";
		}
		else
		{
			if(exixts!="")
			{
				form.submit();
			}
			else
			{
				if(oldyear<18)
				{
					message.style.display = "";
					message.innerHTML = "Du bist nicht genug alt um diese Seite zu besuchen.";
				}
				else
					form.submit();
			}
		}
}

function dateCalendar()
{
	var startyear = 1900;
	var date = new Date();
	var nowyear =  date.getFullYear();
	//var nowyear =  2011;
	var month=new Array(12);
	month[1]="January";
	month[2]="February";
	month[3]="March";
	month[4]="April";
	month[5]="May";
	month[6]="June";
	month[7]="July";
	month[8]="August";
	month[9]="September";
	month[10]="October";
	month[11]="November";
	month[12]="December";
	
	
	var calendar= document.getElementById("calendar");
	var c_D= document.getElementById("dob_D");	
	var c_M= document.getElementById("dob_M");	
	var c_Y= document.getElementById("dob_Y");	
	
	if(calendar)
	{
		for(var d=1;d<=31;d++)
		{
			if(d<10)
				d='0'+d;
			var day = document.createElement("option");
			day.innerHTML = d;
			day.value = d;
			c_D.appendChild(day);
		}
		for(var m=1;m<=12;m++)
		{
			if(m<10)
				mth='0'+m;
			else
				mth=m;	
			var monthtag = document.createElement("option");
			monthtag.innerHTML = month[m];
			monthtag.value = mth;
			c_M.appendChild(monthtag);
		}
		for(var y=nowyear;y>=startyear;y--)
		{
			var year = document.createElement("option");
			year.innerHTML = y;
			year.value = y;
			c_Y.appendChild(year);
		}
	}
	
	
}

window.onload=dateCalendar;
