// commons.js

// newFunction
function getMonthSize(monthIndex , isLeapYear) {

	switch(monthIndex * 1){
	
	// 30 days months
	case(4):
	case(6):
	case(9):
	case(11): return 30;
			  break;
	
	
	// 31 days months
	case(1):
	case(3):
	case(5):
	case(7):
	case(8):
	case(10):
	case(12): return 31;
			  break;
	
	// 28 days months
	case(2):  if (isLeapYear) return 29;
			  	else return 28;
			  break;
	
	
	
	}

	
}


// for dep date update the return date
function updateReturn(depElementID , depOptionsID , depYearID , retMonth , retDay , retYear){






buildDayList(depElementID , depOptionsID , depYearID);

var depDay = document.getElementById(depOptionsID).selectedIndex ;

var depMonth = document.getElementById("departMonth").selectedIndex ; 
var returnDay = document.getElementById(retDay).selectedIndex;
var returnMonth =  document.getElementById("retMonthSelect").selectedIndex;
 

	//if(depMonth < returnMonth ) return;
	
	//if((depMonth == returnMonth ) && ( depDay < returnDay )){
	//	 return;
	//}

 depDaysLength = (document.getElementById(depOptionsID).options.length);
 retDaysLength = (document.getElementById(retDay).options.length);
 
 
 // Set Return day to 7 days ahead from departure day
 if(document.getElementById(depOptionsID).selectedIndex + 7 <= depDaysLength ){
 	
 	document.getElementById(retDay).selectedIndex = document.getElementById(depOptionsID).selectedIndex + 7 ; 
 	document.getElementById("retMonthSelect").selectedIndex = document.getElementById("departMonth").selectedIndex ; 
 }else{
 
 	dayGap = document.getElementById(depOptionsID).selectedIndex + 7 - retDaysLength;
 	document.getElementById(retDay).selectedIndex = dayGap;
 	
 	//Check if we are in december so goto januar
 	if( document.getElementById("departMonth").selectedIndex == 11 ){
 		document.getElementById("retMonthSelect").selectedIndex = 0 ; 
 	}else{
 		document.getElementById("retMonthSelect").selectedIndex = document.getElementById("departMonth").selectedIndex + 1 ; 
 	}
 }
 
 

buildDayList('returnMonth' , 'retDaySelect' , 'retYearSelect');

// var monthList = document.getElementsByName(elementID);
 //var year  =  document.getElementsByName(yearID);


}



function buildDayList(elementID , optionsID , yearID){

   
	 var daysList = document.getElementById(optionsID);
	  var monthList = document.getElementsByName(elementID);
     var year  =  document.getElementById(yearID);
     //alert(year + " " + year)
     var oldIndex = daysList.selectedIndex;
     //clear destinationList;
     for (i=0;i<daysList.options.length;i++)
  	{     	
      	daysList.options[i] = null;
      }
      daysList.options.length=0;  
    
 	//daysList.style.backgroundColor =  #FFFFFF;
	//alert(year.value);
    var numOfItems = getMonthSize(monthList[0].value , checkleapyear(year.value));
     var itemIndex = 0;
    
    for (j = 1 ;  j <= numOfItems ;j++){		      
      url = j;
      name = j;
      daysList.options[itemIndex++] = new Option(name,url);     
    }
    
      daysList.style.color = "#15367F";
	if(oldIndex != -1)
		if(numOfItems > oldIndex)
			daysList.selectedIndex = oldIndex;
}

// depracated
function isLeapYear(yearValue){
	
	 
	if(((yearValue - 2000) % 4) == 0) return true;
		else return false;
	return true;  


}





function checkleapyear(datea)
{
	datea = parseInt(datea);

	if(datea%4 == 0)
	{
		if(datea%100 != 0)
		{
			return true;
		}
		else
		{
			if(datea%400 == 0)
				return true;
			else
				return false;
		}
	}
return false;
}

/*

This method insert the new element into list box realized by <SELECT> tag.

 

listBox           - object represents <SELECT>

newValText  - text of the new item

newValValue - value of the new item

nIndex            - index of the new item. For add to end (append) pass negative value

*/

function addElement(listBox, newValText, newValValue, nIndex)

{

      // out of range...

      if(nIndex>nCount)

            return (false);

 

      var nCount = listBox.length;

 

      listBox.length += 1;

 

      if(nIndex<0)

      {

            listBox.options[nCount] = new Option(newValText, newValValue);

            listBox.selectedIndex   = nCount;

      }

      else

      {

            // This loop shift the elements...

            for(var i=nCount; i>nIndex; i--)

            {

                  listBox.options[i] = new Option(listBox.options[i-1].text, listBox.options[i-1].value);

            }

 

            listBox.options[nIndex] = new Option(newValText, newValValue);

 

            listBox.selectedIndex = nIndex;

      }

 

      return (true);

}





