function init_all()
{
	var now = new Date();

	m = now.getMonth() + 1;
	n = now.getFullYear() + "-" + m + "-" + now.getDate();

	$('#dateToTxt').val(n);
	$('#dateFromTxt').val(n);

	objto = ['#dayToSel', '#monthToSel', '#yearToSel', '#dateToTxt'];
	objfrom = ['#dayFromSel', '#monthFromSel', '#yearFromSel'];

	setDatePicker('#dateTo', '#dateToTxt', objto);
	setDatePicker('#dateFrom', '#dateFromTxt', objfrom, objto);

	selday	=  selectOption(objto[0], now.getDate());
	selmonth = selectOption(objto[1], now.getMonth());
	selyear =  selectOption(objto[2], now.getFullYear());

	$(objfrom[0]).attr('selectedIndex', selday);
	$(objfrom[1]).attr('selectedIndex', selmonth+1);
	$(objfrom[2]).attr('selectedIndex', selyear);

	daysinmonth = daysInMonth(now.getMonth(), now.getFullYear());

	if(selday > daysinmonth) {
		selday = 1;
		selmonth++;
		if (selmonth > 11) {
			selyear++;
		}
	}

	$(objto[0]).attr('selectedIndex', selday + 1);
	$(objto[1]).attr('selectedIndex', selmonth+1);
	$(objto[2]).attr('selectedIndex', selyear);
}

function daysInMonth(iMonth, iYear)
{
	return 32 - new Date(iYear, iMonth, 32).getDate();
}


function setDatePicker(idobj, idobjdisp, objlist, changeOther)
{
	var now = new Date();
	$(idobj).DatePicker({
		date: $(idobjdisp).val(),
		current: $(idobjdisp).val(),
		starts: 1,
		position: 'bottom',
		onBeforeShow: function(){
			$(idobj).DatePickerSetDate($(idobjdisp).val(), true);
		},
		onChange: function(formated, dates){
			$(idobjdisp).val(formated);
			$(idobj).DatePickerHide();

			if(changeOther != undefined) {
				x = [];
				x = formated.split('-');

				daysinmonth = daysInMonth(x[1]-1, x[0]);

				x[2]++;
				if (x[2] > daysinmonth) {
					x[2] = 1;
					x[1]++;
					if (x[1] > 12) {
						x[1] = 1;
						x[0]++;
					}
				}
				
				selday = selectOption(changeOther[0], x[2]);
				selmonth = selectOption(changeOther[1], x[1]);
				selyear = selectOption(changeOther[2], x[0]);

				x = x.join('-');
				$(changeOther[3]).val(x);

				$(changeOther[0]).attr('selectedIndex', selday);
				$(changeOther[1]).attr('selectedIndex', selmonth);
				$(changeOther[2]).attr('selectedIndex', selyear);

			}

			obday = objlist[0];
			obmonth = objlist[1];
			obyear = objlist[2];

			selday = selectOption(obday, dates.getDate());
			selmonth = selectOption(obmonth, dates.getMonth()) + 1;
			selyear = selectOption(obyear, dates.getFullYear());

			$(obyear).attr('selectedIndex', selyear);
			$(obmonth).attr('selectedIndex', selmonth);
			$(obday).attr('selectedIndex', selday);
		},
		onRender: function(date) {
			return {
				disabled: (date.valueOf() < now.valueOf())
			}
		}
	});
}

function selectOption(selbox, d) {
	d = parseInt (d);
	$child = $(selbox).children();
	selindex = -1;
	for (var i = 0; i < $child.length; i++) {
		if ($child[i].value == d) {
			selindex = i;
			break;
		}
	}
	return selindex;
}

function setup_compact_textboxes()
{
	var compactItems = [];
	compactItems[0] = { label: "#sLabel", element: "#sText" };
	compactItems[1] = { label: "#your_email", element: "#txt_yemail" };
	compactItems[2] = { label: "#friend_email", element: "#txt_femail" };

	for(var i=0; compactItems[i]; i++) {
		if($(compactItems[i].label)) {
			toggleElements(compactItems[i].label, compactItems[i].element, "ulabel", "hidden");
		}
	}
}

function toggleElements(lbl, txt, dspCls, hdnCls)
{
	if($(txt).val() == "") {
		$(lbl).addClass(dspCls);
	} else {
		$(lbl).addClass(hdnCls);
	}

	$(lbl).click(function (){
		$(lbl).removeClass(dspCls);
		$(lbl).addClass(hdnCls);
		$(txt).focus();
	});

	$(txt).blur(function (){
		if($(txt).val() == "") {
			$(lbl).addClass(dspCls);
			$(lbl).removeClass(hdnCls);
		}
	});

	$(txt).focus(function (){
		$(lbl).addClass(hdnCls);
	});
}

// startup, never delete
$(document).ready(function(){
	 init_all();
});


