//==================================================================
// iPhone Wheel (Date Picker)
// Timur Prokopiev 2011
//==================================================================

// Global Variables
IPH_MONTHS = ["January","February","March","April","May","June","July","August","September","October","November","December"];
IPH_DATE = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31];

get_index_of_array = function(array, value){
  for(var i = 0; i < array.length; i++){
    if (value === array[i]){
      return i;
    }
  }
  return null;
}

get_month_from_array_with_shift = function(array, index, shift){
	var new_index = index + shift;
	if (new_index < 0) new_index = array.length + new_index;
	if (new_index > array.length - 1) new_index = new_index - array.length;
	return array[new_index];
}

get_date_from_array_with_shift = function(array, index, shift){
	var i = get_month_from_array_with_shift(array, index, shift);
	return normalize(i);
}

normalize = function(date){
	return (date < 10 ? ("0" + date.toString()) : date.toString());
}

//==================================================================

function setDefaultValues() {
  var values = new Array();
  
// Enable Current
  values.push({ name:"Current", type:"Boolean",  value:"true" });

// Month
  values.push({ name:"Month", type:"ComboBox", value:("January," + IPH_MONTHS.join(",")) });

// Date
  values.push({ name:"Date", type:"ComboBox", value:("1," + IPH_DATE.join(",")) });

// Year
  values.push({ name:"Year", type:"text", value:"2012"});

Widget.elem.customData["currentValues"] = values;

}
	
function applyCurrentValues() {
  var values = Widget.elem.customData["currentValues"];
  var current = (values[0].value.toString()=="true");
  var month = values[1].value.split(",")[0];
  var date = parseInt(values[2].value.split(",")[0]);
  var year = values[3].value;

  var month_index = get_index_of_array(IPH_MONTHS, month);

  var d = new Date();
  if (current){
	date = d.getDate();	
    year = d.getFullYear();
	month_index = d.getMonth();
	month = IPH_MONTHS[month_index];
  }
	
	year = parseInt(year);
	if (isNaN(year) || year <= 1970 || year >= 9998){
		year = d.getFullYear();
	}

  var date_index = date - 1;

//==================================================================	
		
Widget.GetObjectByName("1 (active)").textChars = month;
Widget.GetObjectByName("2 (active)").textChars = normalize(date);
Widget.GetObjectByName("3 (active)").textChars = year.toString();

Widget.GetObjectByName("1 (column1)").textChars = get_month_from_array_with_shift(IPH_MONTHS, month_index, -2);
Widget.GetObjectByName("2 (column1)").textChars = get_month_from_array_with_shift(IPH_MONTHS, month_index, -1);
Widget.GetObjectByName("3 (column1)").textChars = get_month_from_array_with_shift(IPH_MONTHS, month_index, 1);
Widget.GetObjectByName("4 (column1)").textChars = get_month_from_array_with_shift(IPH_MONTHS, month_index, 2);

Widget.GetObjectByName("1 (column2)").textChars = get_date_from_array_with_shift(IPH_DATE, date_index, -2);
Widget.GetObjectByName("2 (column2)").textChars = get_date_from_array_with_shift(IPH_DATE, date_index, -1);
Widget.GetObjectByName("3 (column2)").textChars = get_date_from_array_with_shift(IPH_DATE, date_index, 1);
Widget.GetObjectByName("4 (column2)").textChars = get_date_from_array_with_shift(IPH_DATE, date_index, 2);

Widget.GetObjectByName("1 (column3)").textChars = parseInt(year)-2;
Widget.GetObjectByName("2 (column3)").textChars = parseInt(year)-1;
Widget.GetObjectByName("3 (column3)").textChars = parseInt(year)+1;
Widget.GetObjectByName("4 (column3)").textChars = parseInt(year)+2;
}

switch (Widget.opCode)
{
	case 1: setDefaultValues();   break;
	case 2: applyCurrentValues(); break;
}