/////////////////////////////////////////////////////////////
// GENERATES A GIVVEN FORM INTERFACE
/////////////////////////////////////////////////////////////
function IFormInterface(sFormName)
{
	this.formID = "_form_" + sFormName;
	
	if(this.oForm = window[this.formID]) 
	{
		this.oData = {};
		return this;
	}
	else
	{
		throw new Error(0,"IFormInterface error [" + sFormName + " is not a valid form ID].");
	}
}

function IFormInterface.prototype.save()
{
	
	try
	{
		var oFields = this.oForm.all["__field__"];

		if(!oFields || !oFields.length) return this.oData;
		
		for(var i=0; i<oFields.length; i++)
		{
			var oInput		= null;
			var oInputIn	= null;
			
			if(oInput = oFields[i].firstChild)
			{
				if(String(oInput.id).indexOf(this.formID + "_field_")==0)
				{
					var fieldName		= String(oInput.id).replace(this.formID + "_field_","");
					var fieldValue		= oInput.value;
					
					if(oInput.type.toUpperCase()=="CHECKBOX") 
					{
						oInput.value	= (oInput.checked)?1:0;
						fieldValue		= (oInput.checked)?1:0;
					}
					else if(oInput.type.toUpperCase()=="RADIO" || oInput.type.toUpperCase()=="CHECK")	// div panel
					{
						var fieldValue			= "";
						var radioName			= oInput.name;
						var radioCollection		= oInput.childNodes;
						
						for(var j=0; j<radioCollection.length; j++)
						{
							if(radioCollection[j].tagName && radioCollection[j].tagName.toUpperCase()=="INPUT")
							{
								if(radioCollection[j].checked)
								{
									if (oInput.type.toUpperCase()=="CHECK")
									{
										fieldValue	+= " "+radioCollection[j].value;
									}
									else
									{
										fieldValue	= radioCollection[j].value;
									}
								}
							}
						}
					}
					if (oInput.type.toUpperCase()=="CHECK")
					{
						fieldValue	= trim(fieldValue);
					}
					this.oData[fieldName]		= fieldValue;
				}
			}
		}
	}
	catch(e){window.status= "KSForm error:"+e.description}
	
	return this.oData;
}



function IFormInterface.prototype.load(oData)
{

	this.oData = oData;
	for(var i in oData)
	{
		var oField = null;
		if(oField = this.oForm.all[this.formID + "_field_" + i])
		{
				oField.value	= oData[i];
			
			if(oField.type.toUpperCase()=="CHECKBOX") 
			{
				oField.checked	= (oField.value==1);
			}
		}
	}
	
	this.init();
}

function IFormInterface.prototype.init()
{
	return;
	
	var oFields = this.oForm.all["__field__"];
	
	for(var i=0;i<oFields.length;i++)
	{
		var oHtml = null;
		if(oHtml = oFields[i].firstChild)
		{
			if(String(oHtml.id).indexOf(this.formID + "_html_")==0)
			{
				oHtml.innerHTML = (oHtml.html);
			}
		}
	}
	
	return this.oData;
}


/////////////////////////////////////////////////////////////
// PANE RELATED METHODS
/////////////////////////////////////////////////////////////

//***********************************************************
// Toggles the selected pane
//***********************************************************
function togllePane(oObj,iIndex,formID){
	var current = window[formID].selected;
	if(current==iIndex) return;
	window[formID + "_tab_" + current].style.display='none';
	deselectPane(current,formID);
	window[formID + "_tab_" + iIndex].style.display='block';
	selectPane(iIndex,formID);
	window[formID].selected = iIndex;
}

//***********************************************************
// Displays a selected indicator
//***********************************************************
function selectPane(iIndex,formID){
	window[formID + "_sel_" + iIndex].className='KSFORM-TAB-SELECTED';
}

//***********************************************************
// Displays a non selected indicator
//***********************************************************
function deselectPane(iIndex,formID){
	window[formID + "_sel_" + iIndex].className='KSFORM-TAB-NON-SELECTED';
}

function openCalendar(obj,calendarPath)
{  
	var	dialogTop0	= parseInt(self.dialogTop,10);
	var dialogLeft0	= parseInt(self.dialogLeft,10);
	
	var	dialogTop	= self.event.clientY + dialogTop0 + 50;
	var dialogLeft	= self.event.clientX + dialogLeft0;
	var url;

	if(!calendarPath)
	{
			url		= "/ks_webcontrols_client/scripts/calander.asp";
	}
	else	url		= calendarPath;
			url	   += "?dirUp=1&thisDay=&dirUp=1";
	
	var val = showModalDialog(url,'Dialog Arguments Value','dialogHeight:180px; dialogWidth:240px; status:no; scroll:0; dialogTop:'+dialogTop+'px;  dialogLeft:'+dialogLeft+'px; ');
	//window.open(url);
	
	if(val!=null)	obj.value=val;
}
			
