﻿

	function ctrl_cb_seqfill(id, start, end, minlen, fc, fcappend, emptyfirst)
	{
		var obj = document.getElementById(id);
		if (obj)
		{
			var fct = !fc || fc.length == 0 ? " " : fc;
			var selValue = obj.value;

			while (obj.options.length > 0)
				obj.remove(0);

			if (emptyfirst)
			{
				var optobj = new Option(str_fc("", minlen+2, " ", true), "");

				if (optobj.value == selValue)
					optobj.selected = true;

				if (navigator.appName == "Microsoft Internet Explorer")
					obj.add( optobj );			
				else
					obj.add( optobj, null );							
			}

			for (var idx = start; idx <= end; idx++)
			{
				var val = idx + "";
				while (val.length < minlen)
				{
					if ( fcappend )
						val = val + fct;
					else
						val = fct + val;
				}

				var optobj = new Option(val, idx);

				if (optobj.value == selValue)
					optobj.selected = true;

				if (navigator.appName == "Microsoft Internet Explorer")
					obj.add( optobj );			
				else
					obj.add( optobj, null );							

			}
		}
	}

	function ctrl_date_mdchg(id)
	{
		var yobj = document.getElementById(id + ".year");
		var mobj = document.getElementById(id + ".month");
		var dobj = document.getElementById(id + ".day");
		if (yobj && mobj && dobj)
		{
			var selYear = yobj.value;
			var selMonth = mobj.value;
			var selDay = dobj.value;
			dm_arr_days  = new Array ( 31, 28 + IsLeapYear(selYear), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 );
			//dm_arr_name = new Array( "Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December" );
			if (selYear != "" || parseInt(selMonth,10) != 2 )
				ctrl_cb_seqfill(id+'.day', 1, dm_arr_days[parseInt(selMonth,10)-1], 2, "0", false,true);
			else {
				while (dobj.options.length > 1)
					dobj.remove(1);			
			}
			

		}
		
	}

	function ctrl_date_getyear(id)
	{
		var obj = document.getElementById(id);
		if (obj)
		{
			var value = parseInt( document.getElementById(id + '.year').value, 10 );
			if (isNaN(value))
				return 0;
			return value;
		} else
			return 0;
	}

	function ctrl_date_getmonth(id)
	{
		var obj = document.getElementById(id);
		if (obj)
		{
			var value = parseInt( document.getElementById(id + '.month').value, 10 );
			if (isNaN(value))
				return 0;
			return value;
		} else
			return 0;
	}

	function ctrl_date_getday(id)
	{
		var obj = document.getElementById(id);
		if (obj)
		{
			var value = parseInt( document.getElementById(id + '.day').value, 10 );
			if (isNaN(value))
				return 0;
			return value;
		} else
			return 0;
	}

	function ctrl_date_get(id)
	{
		var val = "";
		val += ctrl_date_getyear(id);
		val += (ctrl_date_getmonth(id) < 10 ? "0" : "") +  ctrl_date_getmonth(id);
		val += (ctrl_date_getday(id) < 10 ? "0" : "") +  ctrl_date_getday(id);
		return val;
	}

	function str_fc(str, minlen, fc, fcappend)
	{
		var fct = !fc || fc.length == 0 ? " " : fc;
		var val = str + "";
		while (val.length < minlen)
		{
			if ( fcappend )
				val = val + fct;
			else
				val = fct + val;
		}
		return val;
	}

	function ctrl_date_init(id, y, m, d, yb, ye, c1, callback )
	{
		//callback(id,y,m,d);
		var obj = document.getElementById(id);
		if (obj)
		{
			dm_arr_days  = new Array ( 31, 28 + IsLeapYear(y), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 );
			dm_arr_name = new Array( "Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December" );
			
			var onchg = "onchange=\"";
			onchg += "ctrl_date_mdchg('" + id + "'); ";
			if (callback && callback.length > 0)
				onchg += callback + "('" + id + "'); ";
			onchg += "\"";
			
			var ysel = "";
			ysel = "<select " + onchg + " class=\"" + c1 + "\" id=\"" + id + ".year\">\r\n";
			//alert(ysel)
			ysel += "</select>\r\n";

			
			var msel = "";
			msel = "<select " + onchg + " class=\"" + c1 + "\" id=\"" + id + ".month\">\r\n";
			msel += "<option value=\"\"></option>\r\n";
			for (var idx = 0; idx < dm_arr_name.length; idx++)
			{
				msel += "<option value=\"" + (idx+1) + "\">" + dm_arr_name[idx] + "</option>\r\n";
			}
			msel += "</select>\r\n";

			var dsel = "";
			if ( callback && callback.length > 0 )
				dsel = "<select onchange=\"" + callback+"('"+id+"');" + "\" class=\"" + c1 + "\" id=\"" + id + ".day\">\r\n";
			else
				dsel = "<select class=\"" + c1 + "\" id=\"" + id + ".day\">\r\n";
			dsel += "</select>\r\n";

			var asel = ysel + "-&nbsp;" + msel + "-&nbsp;" + dsel;

			obj.innerHTML = asel;

			ctrl_cb_seqfill(id+'.year', yb, ye, 4, "", false,true);
			ctrl_cb_seqfill(id+'.day', 1, dm_arr_days[parseInt(m,10)-1], 2, "0", false, true);

			document.getElementById(id+'.year').value = y;
			document.getElementById(id+'.month').value = m;
			document.getElementById(id+'.day').value = d;

		}
	}

	function IsLeapYear(y)
	{
		return (((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0)) ? true : false;
	}

	function dateCtrlCallback(id)
	{
		date = ctrl_date_get(id);
		document.getElementById(id.substring(5,id.length)).value=date;
	}

	function initCommonCtrls()
	{
		var inputs = document.getElementsByTagName("input");
		for(i=0; i<inputs.length; i++)
		{
			if(inputs[i].type=="hidden")
			{	
				
				if(inputs[i].id.substring(0,9) == "DATECTRL_"){
					value = inputs[i].value;
					if(value.indexOf("-") > -1)
					{
						value = value.substring(0,value.indexOf("-"));
					}
					if(value.length==6) value='19'+value;
					year=value.substring(0,4);
					month=value.substring(4,6);
					day=value.substring(6,8);
					if(value.length==0)
					{
						year = 0;
						month=0;
						day=0;
					}
					 ctrl_date_init('SPAN_'+inputs[i].id,year,parseInt(month,10),parseInt(day,10), 1920, 2003, 'FFV FS10PX','dateCtrlCallback');
				}
			}
		}
	}
