/************************************************************************************************
*	Programmeur :		Daniel Rioux											*
*																		*
*	Date de céation :		14 Décembre 2008										*
*																		*
*	Description :		Contient les fonctions typiques de l'application budget.					*
************************************************************************************************/
if (window.onload)
{
	
	getUserAgent();
	window.onload = setTimeout(getSession,10);
}
else if (location.reload)
{
	
	getUserAgent();
	setTimeout(reloadSession,10);
}
else
{
	
	getUserAgent();
	setTimeout(getSession,10);
}

//window.onunload = destroySession;


function clsStartApp()
{
	this.load = load;
	
	function load(Page)
	{
		var PageContent = new Object();
		//selectTab(Page); //on charge la page
		loadPage(Page);
		PageContent = getPageContent(Page);
		fillPage(Page,PageContent);
		/*if (Page == "summary")
		{
			fillSummary(PageContent);
			showTabs("show"); //On affiche les onglets
		}
		else
		{
			fillPage(Page,PageContent);
		}*/
		
	}
}

function fillInfosForm(Form,JsonData)
{
	var i;
	
	FormData = eval ('(' + JsonData + ')');
	
	for (i = 0; i < Form.elements.length ; i++)
	{
		if ((Form.elements[i].type != "button") && (Form.elements[i].type != "submit") && (Form.elements[i].type != "reset"))
		{
			for (Data in FormData)
			{
				
				if ((Data == Form.elements[i].name) || (Data + "[]" == Form.elements[i].name ))
				{
					switch (Form.elements[i].type)
					{
						case "text":
							Form.elements[i].value = eval("FormData." + Data);
						break;
						
						case "select-one":
							
							for (var j = 0 ; j < Form.elements[i].options.length ; j++)
							{
								//alert (eval("FormData." + Data) + "==" + Form.elements[i].options[j].value);
								if (eval("FormData." + Data) == Form.elements[i].options[j].value)
								{
									//alert (Form.elements[i].options[j].value);
									Form.elements[i].options[j].selected = true;
								}	
							}
						break;
						
						case "select-multiple":
							
							var Options = eval("FormData." + Data);
							var ArrOptions = Options.split(",");
							
							for (var j = 0 ; j < Form.elements[i].options.length ; j++)
							{
								for (var x = 0; x < ArrOptions.length ; x++)
								{
									
									if (ArrOptions[x] == Form.elements[i].options[j].value)
									{
										//alert (Form.elements[i].options[j].value);
										Form.elements[i].options[j].selected = true;
									}
								}
							}
						break;
						
						case "checkbox":
							
							var Options = eval("FormData." + Data);
							var ArrOptions = Options.split(",");
							
							for (var x = 0; x < ArrOptions.length ; x++)
							{
								if (ArrOptions[x] == Form.elements[i].value)
								{
									Form.elements[i].checked = true;
								}
							}
							
						break;
					}
				}
				else if ((Data + "_1") == Form.elements[i].name)
				{
					var Phone = eval("FormData." + Data);
					var ArrPhone = Phone.split("-");
					var x;
					var y;
					var z = 0;
					
					for (x = i ; x < eval(i + ArrPhone.length) ; x++)
					{	
						if (z == 0)
						{
							for (y = 0 ; y < Form.elements[x].length ; y++)
							{	
								if (ArrPhone[z] == Form.elements[x].options[y].value)
								{
									Form.elements[x].options[y].selected = true;
									break;
								}
							}
						}
						else
						{
							if (z == 2)
							{
								var PhoneExt = new RegExp (" #");
								
								if (PhoneExt.test(ArrPhone[z]))
								{
									var Extension = ArrPhone[z].split(" #");
									Form.elements[x].value = Extension[0];
									Form.elements[x + 1].value = Extension[1];
								}
								else
								{
									Form.elements[x].value = ArrPhone[z];
								}
							}
							else
							{
								Form.elements[x].value = ArrPhone[z];
							}
						}
						z++;
					}
				}
			}
		}
	}
}

//Remplir la page actuelle de son contenu
function fillPage(Page,JsonData)
{
	//alert (Page);
	//alert(JsonData);
	
	var Table = document.getElementById("tblFrm" + Page);
	var cTable = new clsTable(Table);
	var cInput = new clsInput();
	var formObj;
	var objAttr;
	var Json = JsonData.split("|");
	var Data;
	
	if (Json != "")
	{	
		
		//alert (formObj);
		for (var i = 0 ; i < Json.length ; i++)
		{
			Data = eval ("(" + Json[i] + ")");
			
			with (cInput)
			{
				setType(Data.ITEM_TYPE);
				setId(Data.ITEM_ID);
				setClass(Data.ITEM_CLASS);
				setName(Data.ITEM_NAME);
				setValue(Data.ITEM_VALUE);
				setTabIndex(Data.ID);
				
				formObj = create();
			}
			
			if (!formObj)
			{
				break;
			}
			
			with (cTable)
			{
				newRow();
				
				setColText(Data.ITEM_LABEL);
				setColAlign("left");
				newCol();
				
				setColAlign("right");
				setColChild(formObj);
				newCol();
				
				body();
				append();
			}
		}	
	}	
}
