appData=new Object();
appData.prevSect='none';
appData.prevID='';
appData.thisSect='';
appData.thisID='';
appData.nextSect='';
appData.nextID='';
loadOnly=0;
appData.hide=function(){
	document.getElementById('centerContent').style.visibility='hidden';
	loadingScreen.show();
}
appData.show=function(){
	document.getElementById('centerContent').style.visibility='visible';
	loadingScreen.hide();
}
appData.advSect=function(sect,ID,postSQL){
	if (!postSQL)	{
		appData.nextSect=sect;
		appData.nextID=ID;
		var cur=appData[appData.thisSect];
		var curProcess;
		if(cur.process){
			curProcess=cur.process();
			if (curProcess==false)return;
		} else { 
			appData.hide();
		}
	}
	appData.prevSect=appData.thisSect;
	appData.prevID=appData.thisID;
	appData.thisSect=sect;
	appData.thisID=ID;
	appData.nextSect='';
	appData.nextID='0';	
	loadForm(sect,'',ID,appData.preLoad(sect));
};
appData.findNextSect = function(sect) {
	var claimID = appData.getClaimID();
	var ID = '';
	DetermineSect:
		if (sect)
		{
			if (appData.summaryInfo)
				if (appData.summaryInfo[claimID])
				{
					sect="summaryInfo";
					ID = claimID;
					break DetermineSect;
				}
			if (appData.additionalInfo)
				if (appData.additionalInfo.data[claimID])
				{ 
					sect="additionalInfo";
					ID=claimID;
					break DetermineSect;
				}
			if (sect=='additionalInfo')
				break DetermineSect;
			if (appData.witnessInfo)
			{ 
				for(x in appData.witnessInfo.data)
					if (x.txtClaimID == claimID)
					{
						sect="witnessInfo";
						ID=x;
						break DetermineSect;
					}
			}	
			if (sect=='witnessInfo')
				break DetermineSect;
			if (appData.claimantInfo)
			{ 
				for(x in appData.claimantInfo.data)
					if (x.txtClaimID == claimID)
					{
						sect="claimantInfo";
						ID=x;
						break DetermineSect;
					}
			}	
			if (sect=='claimantInfo')
				break DetermineSect;
			if (appData.insuredInfo)
			{ 
				for(x in appData.insuredInfo.data)
					if (x.txtClaimID == claimID)
					{
						sect="insuredInfo";
						ID=x;
						break DetermineSect;
					}
			}	
			if (sect=='insuredInfo')
				break DetermineSect;
			if (appData.claimInfo)
			{ 
				for(x in appData.claimInfo.data)
					if (x.txtClaimID == claimID)
					{
						sect="claimInfo";
						ID=x;
						break DetermineSect;	
					}
			}
		}
	appData.advSect(sect, ID);
}
appData.cancel=function(){
	if(appData.prevSect)
	{
		appData.thisSect=appData.prevSect;
		appData.thisID=appData.prevID;
		if(appData.thisSect=='lossInfo' && !appData.thisID)appData.thisID='pre';
	}
	else if(appData.thisSect=='none')appData.thisSect='lossInfo';
	appData.prevSect='';
	appData.prevID='';	
	appData.nextSect='';
	appData.nextID='';
	loadForm(appData.thisSect,'',appData.thisID,appData.preLoad(appData.thisSect));	
}
appData.preLoad=function(sect){
	var json=new Object();
	switch(sect){
		case 'lossInfo':
			if (appData.addClaim){
				json.companyID=appData.addClaim.companyID;
				json.claimPath=appData.addClaim.claimPath;
			} else {
				json.companyID=appData.lossInfo.companyID;
			}
			return json;
		case 'claimInfo':
			json.companyID=appData.lossInfo.companyID;
			json.lossID=appData.lossInfo.lossID;
			if(appData.insuredInfo)if(appData.insuredInfo.lossContactID)appData.claimInfo.nextID=appData.insuredInfo.lossContactID;
			return json;
		case 'insuredInfo':
			json.lossID=appData.lossInfo.lossID;
			json.claimID=appData.getClaimID();
			if(appData.thisID && appData.propertyInfo){
				json.property=new Object();
				var propertyIDs=appData.insuredInfo.data[appData.thisID].PropertyIDs;
				var propData=appData.propertyInfo.data;
				var jsonProp=new Object();
				var property;
				for (var key in propertyIDs){
					property=propData[key];
					switch(property.txtPropertyType){
						case '0':
							jsonProp.type=(property.selBodyType?property.selBodyType:'Vehicle');
							break;
						case '1':
							jsonProp.type='Cargo';
							break;
						default:
							jsonProp.type='Property';
					}
					jsonProp.description=property.txtDescription;
					jsonProp.ID=property.txtPropertyID;
					json.property[property.txtPropertyID]=arrayCopy.getCloneOfObject(jsonProp);
					jsonProp=new Object();
				}
			}
			return json;
		case 'propertyInfo':
			if(!appData.thisID){
				if (appData.prevSect != 'servSalvage')
				{
					json.parentSection=appData.prevSect;
					json.parentID=appData.prevID;
				}
				else
				{
					json.parentSection = appData.servSalvage.addSect;
					json.parentID = appData.servSalvage.addID;
				}
			}
			else
			{
				if (appData.prevSect != 'servSalvage')
				{
					json.parentSection=appData.propertyInfo.data[appData.thisID].txtParentSection;
					json.parentID=appData.propertyInfo.data[appData.thisID].txtParentID;
				}
				else
				{
					json.parentSection = appData.servSalvage.addSect;
					json.parentID = appData.servSalvage.addID;
				}
			}
			json.lossID=appData.lossInfo.lossID;
			json.claimID=appData.getClaimID();
			if (appData.existContacts) json.existContacts=arrayCopy.getCloneOfObject(appData.existContacts);			
			if (appData.thisID && appData.contactInfo){
				json.contacts=new Object();
				var contactIDs=appData.propertyInfo.data[appData.thisID].LossContactIDs;
				var contData=appData.contactInfo.data;
				var jsonCont=new Object();
				var contact;
				for (var key in contactIDs)
				{
					contact=contData[key];
					var type= '';
					if (contact.txtOwner == 1)
						type = 'Owner';
					if (contact.txtDriverPass == 1)
					{
						if (contact.txtOwner ==1)
							type += "/" + 'Driver';
						else
							type = 'Driver';
					}
					if (contact.txtDriverPass == 2)
					{
						if (contact.txtOwner == 1)
							type += "/" + 'Passenger';
						else
							type = 'Passenger';
					}
					jsonCont.type = type;
					
					jsonCont.description=contact.txtName;
					jsonCont.ID=contact.txtLossContactID;
					json.contacts[contact.txtLossContactID]=arrayCopy.getCloneOfObject(jsonCont);
					jsonCont=new Object();
				}
			}
			if(appData.thisID==undefined){
				if (appData.prevSect!='none')json.propertyType=appData[appData.prevSect].nextType;
			}
			else if(appData.propertyInfo.data)
			{
				json.propertyType=appData.propertyInfo.data[appData.thisID].txtPropertyType;
			}
			return json;
		case 'contactInfo':
			json.parentSection='propertyInfo';
			if(!appData.thisID) json.parentID=appData.prevID;
			else json.parentID=appData.contactInfo.data[appData.thisID].txtParentID;
			json.lossID=appData.lossInfo.lossID;
			json.claimID=appData.getClaimID();
			if (appData.existContacts) json.existContacts=arrayCopy.getCloneOfObject(appData.existContacts);
			if(appData.thisID==undefined)json.contactType=appData[appData.prevSect].nextType;
			else json.contactType=appData.contactInfo.data[appData.thisID].txtDriverPass;		
			return json;			
		case 'claimantInfo':
			json.lossID=appData.lossInfo.lossID;
			json.claimID = appData.getClaimID();
			if (appData.existContacts) json.existContacts=arrayCopy.getCloneOfObject(appData.existContacts);			
			if(appData.thisID && appData.propertyInfo){
				json.property=new Object();
				var propertyIDs=appData.claimantInfo.data[appData.thisID].PropertyIDs;
				var propData=appData.propertyInfo.data;
				var jsonProp=new Object();
				var property;
				for (var key in propertyIDs){
					property=propData[key];
					switch(property.txtPropertyType){
						case '0':
							jsonProp.type=(property.selBodyType?property.selBodyType:'Vehicle');
							break;
						case '1':
							jsonProp.type='Cargo';
							break;
						default:
							jsonProp.type='Property';
					}					
					jsonProp.description=property.txtDescription;
					jsonProp.ID=property.txtPropertyID;
					json.property[property.txtPropertyID]=arrayCopy.getCloneOfObject(jsonProp);
					jsonProp=new Object();
				}
			}			
			return json;
		case 'witnessInfo':
			json.lossID=appData.lossInfo.lossID;
			json.claimID=appData.getClaimID();
			return json;
		case 'additionalInfo':
			json.companyID=appData.lossInfo.companyID;			
			json.claimID=appData.getClaimID();
			json.claimType=appData.claimInfo.data[json.claimID].selClaimType;
			json.loadOnly=loadOnly;
			return json;
		case 'summaryInfo':
			json.lossID=appData.lossInfo.lossID;
			json.companyID=appData.lossInfo.companyID;			
			if (appData.summaryInfo){
				if (appData.summaryInfo.dlgVendorRating){
					json.claimID=appData.claimInfo.lastKnownClaimID;
					appData.summaryInfo.dlgVendorRating = false;
				} else {
					json.claimID=appData.getClaimID();
				}
			} else {
				json.claimID=appData.getClaimID();
			}
			if (appData.addClaim) {
				if (appData.addClaim.notify){
					json.newClaim=1;
					appData.addClaim.notify=0;
				} else {
					json.newClaim=0;
				}
			}
			for (key in appData){if (appData[key]) if (appData[key].data)json[key]=arrayCopy.getCloneOfObject(appData[key].data);};			
			return json;
		case 'servDispatch':
			json.companyID=appData.lossInfo.companyID;
			json.claimID=appData.getClaimID();
			json.contactID=appData.claimInfo.data[json.claimID].selPrimaryAdjuster;
			json.claimType=appData.claimInfo.data[json.claimID].selClaimType;
			return json;
		case 'servSalvage':
			json.claimID = appData.getClaimID();
			if (appData.propertyInfo)
				json.properties = appData.propertyInfo.data;
			if (appData.existContacts)
				json.existContacts=arrayCopy.getCloneOfObject(appData.existContacts);
			if (appData.servSalvage)
			{
				if (appData.servSalvage.addProp)
				{
					json.addProp = 1;
					appData.servSalvage.addProp = 0;
				}
			}
			return json;
		case 'servOther':
			json.claimID=appData.getClaimID();
			return json;
		case 'ntaInsdChecklist':
			json.claimID=appData.getClaimID();
			return json;	
		case 'dialog':
			json.claimID=appData.getClaimID();
			if (json.claimID = 'undefined')
				json.claimID = appData.claimInfo.lastKnownClaimID;
			json.companyID=appData.lossInfo.companyID;
			if (appData.summaryInfo)
				if (appData.summaryInfo.tempVendorID)
					json.vendorID=appData.summaryInfo.tempVendorID;
			json.claimNum=appData.claimInfo.data[json.claimID].txtClaimNum;
			if (appData.claimInfo.data[appData.thisID])
				if (appData.claimInfo.data[appData.thisID].selPrimaryAdjuster)
					json.adjusterID=appData.claimInfo.data[appData.thisID].selPrimaryAdjuster;
			if (appData.thisSect == 'propertyInfo')
			{
				if (appData.existContacts)
					json.existContacts=arrayCopy.getCloneOfObject(appData.existContacts);
				json.contactType=appData[appData.thisSect].nextType;
			}
			return json;
		case 'dlgSelClaim':
			json.claimInfo = appData.claimInfo.data;
			json.insuredInfo = appData.insuredInfo.data;
			if (appData.claimInfo.sect == 'insuredInfo')
				appData.claimInfo.selInsured = true;
			json.selInsured = appData.claimInfo.selInsured;
			return json;
		case 'shortForm':
			json.companyID=appData.addClaim.companyID;
			return json;
	}
	return '';
};
appData.copy=function(sect){
	if(!appData[sect].current)appData[sect].current=new Array();
	var form=appData[sect].form;
	var curr=appData[sect].current;
	var fieldDef;
	var hField;
	for (var i=0;i<form.length;i++){
		fieldDef=form[i];
		hField=document.getElementById(fieldDef.domKey);
		if(!hField)hField=document.getElementsByName(fieldDef.domKey);
		if(hField){
			switch (fieldDef.type){
				case "select":
					curr[fieldDef.domKey]=hField[hField.selectedIndex].value;
					break;
				case "radio":
					for (key in fieldDef.options){
						hField=document.getElementById(fieldDef.domKey+'v'+key);
						if (hField.checked==true){
							curr[fieldDef.domKey]=hField.value;
							break;
						}
					}
					break;
				default:
					if (!hField)alert(fieldDef.domKey);
					else curr[fieldDef.domKey]=hField.value;
					break;
			}
			if (!curr[fieldDef.domKey])curr[fieldDef.domKey]="";
		}
	}
};

appData.buildInsertSQL=function (section,tblName,batch){
	var form=appData[section].form;
	var data=appData[section].current;
	var field;
	var columns="";
	var val="";
	var d="";
	var values="";
	for (var i=0;i<form.length;i++){
		field=form[i];
		if(data[field.domKey]!=""){
			if(field.sql){
				if(field.sql[tblName+batch]){
					columns+=field.sql[tblName+batch].field+",";
					if (field.type=='date') val=formatDate(parseDate(data[field.domKey]),'yyyy-MM-dd');
					else if(field.type=='time')val=formatDate(parseTime(data[field.domKey]),'HH:mm');
					else if(field.type=='datetime')val=formatDate(parseTime(data[field.domKey]),'yyyy-MM-dd HH:mm');
					else if (field.type=='currency')val=conCurrencyToSQL(data[field.domKey]);
					else val=data[field.domKey];
					values+="'"+addslashes(val)+"',";
				}
			}
		}
	}
	if (tblName.slice(0,3)!="map"){
		if (columns.indexOf("CreatedBy")==-1){
			columns+="CreatedBy,";
			values+="'"+ userSession['ctid']+"',";
		}
		if (columns.indexOf("CreateDate")==-1){
			columns+="CreateDate,";
			values+="NOW(),";
		}
	}	
	var sqlColumns=columns.slice(0,-1);
	var sqlValues=values.slice(0,-1);
	var sql="INSERT INTO "+tblName+" ("+sqlColumns+") VALUES ("+sqlValues+")";
	return sql; 
};

appData.buildSelectSQL=function (section, tblName, batch, key, ID){
	var form=appData[section].form;	
	var field;
	var columns="";	
	
	for (var i=0;i<form.length;i++){
		field=form[i];
		
		if(field.sql)
			if(field.sql[tblName+batch])
				columns+=field.sql[tblName+batch].field+",";
	}
	var sqlColumns=columns.slice(0,-1);
	var sql="SELECT "+sqlColumns+" FROM "+tblName+" WHERE "+key+"="+ID;
	return sql; 	
};

appData.buildUpdateSQL=function (section,tblName,batch,ID,primKey,PID){
	if(!PID) PID=ID;
	if(!primKey || !PID){
		alert('Could not find primary key for the form.');
		return false;
	}
	var form=appData[section].form;
	var data=appData[section].current;
	var prevData=appData[section].data[ID];
	var field;
	var sql;
	var val;
	var values="";
	var updated=0;
	if (tblName.slice(0,3)!="map")values="ModifiedBy='"+ userSession['ctid']+"',ModifyDate=NOW(),";
	for (var i=0;i<form.length;i++){
		field=form[i];
		if (prevData){
			if(data[field.domKey]!="" && data[field.domKey]!=prevData[field.domKey]){
				if (field.sql){
					if(field.sql[tblName+batch]){
						if (field.type=='date') val=formatDate(parseDate(data[field.domKey]),'yyyy-MM-dd');
						else if(field.type=='time')val=formatDate(parseTime(data[field.domKey]),'HH:mm');
						else if(field.type=='datetime')val=formatDate(parseTime(data[field.domKey]),'yyyy-MM-dd HH:mm');
						else if (field.type=='currency')val=conCurrencyToSQL(data[field.domKey]);
						else val=data[field.domKey];				
						values+=field.sql[tblName+batch].field+"='"+addslashes(val)+"', ";
						updated++;
					}
				}
			}
		}
	}
	var sqlValues=values.slice(0,-2);
	if (updated!=0) sql="UPDATE "+tblName+" SET "+sqlValues+" WHERE "+primKey+"="+PID;
	else sql=false; 
	return sql;
};

appData.runSQL=function(sql, resFunct, varFunct, db){
	var AjaxCall = {
		handleSuccess:function(o){
			this.processResult(o);
		},
		handleFailure:function(o){
			// Failure Handler
			//TODO Add Error Handling
			alert('Could not run SQL');
		},
		processResult:function(o){
			//TODO Add Error Email to ICS
			var responseText=eval(o.responseText);
			//if (responseText[0]!=0)alert(stripslashes(responseText[0]));else 
			if (resFunct){
				if (varFunct){
					var variables="";
					for (var i=0;i<varFunct.length;i++){
						responseText[3+i]=varFunct[i]
					}
				}
				resFunct(responseText);
			}
		},
		startRequest:function(){
			var json=new Object();
			json.sql=sql;
			if (db)
				json.db = db;
			json.claimID=appData.getClaimID();
			document.getElementById('txtJson').value=json_encode(json);
			YAHOO.util.Connect.setForm(document.getElementById('json'));
			YAHOO.util.Connect.asyncRequest('POST', 'ajax/sql.php',callback);
		}
	};
	var callback =
	{
		success:AjaxCall.handleSuccess,
		failure:AjaxCall.handleFailure,
		scope:AjaxCall
	};
	AjaxCall.startRequest();
};

appData.load=function(result){
	var fields=result[2][0];
	var section=result[3];
	var tblName=result[4];
	var batch=result[5];
	var ID=result[6];
	var form=appData[section].form;	
	var val='';
	
	if (!appData[section].data)
		appData[section].data = new Object();
	if (!appData[section].data[ID])
		appData[section].data[ID]= new Object();
	if (!appData[section].current)
		appData[section].current = new Object();
	
	var data=appData[section].data[ID];
	
	for (var i=0;i<form.length;i++){
		field=form[i];
		
		if(field.sql){
			if(field.sql[tblName+batch]){
				val=fields[field.sql[tblName+batch].field];
				data[field.domKey]=val;
				appData[section].current[field.domKey]=val;
			}
		}
	}
	appData.retrieve(section, ID);
};

appData.store=function(sect,ID){
	if(!appData[sect].data)appData[sect].data=new Array();
	appData[sect].data[ID]=arrayCopy.getCloneOfObject(appData[sect].current);
	appData[sect].current=new Array();
};
appData.retrieve=function(sect,ID){
	if (sect=='summaryInfo') return 0;
	if (!appData[sect]) return 0;
	if (appData.lossInfo)
		if(appData.lossInfo.lossID && appData.lossInfo.lossID!='pre')
			appData[sect].current=arrayCopy.getCloneOfObject(appData[sect].data[ID]);
	var form=appData[sect].form;
	if (!form)
		alert("Error: appData[sect].form did not load properly. Error given by appData.retrieve function.");
	var curr=appData[sect].current;
	var fieldDef;
	var hField;
	for (var i=0;i<form.length;i++)
	{
		fieldDef=form[i];
		hField=document.getElementById(fieldDef.domKey);
		if (!curr[fieldDef.domKey])curr[fieldDef.domKey]="";
		switch (fieldDef.type){
			case "select":
				for (var ii=0;ii<hField.length;ii++){
					if(hField[ii].value==curr[fieldDef.domKey])hField.selectedIndex=ii;
				}
				break;
			case "radio":
				for (key in fieldDef.options){
					hField=document.getElementById(fieldDef.domKey+'v'+key);
					if (curr[fieldDef.domKey]==hField.value){
						hField.checked=true;
						break;
					}
				}
				break;
			case "date":
				if (curr[fieldDef.domKey]) {
					d=parseDate(curr[fieldDef.domKey]);
					if (d) hField.value=formatDate(d,'M/dd/yyyy');
				}
				break;					
			case "time":
				if (curr[fieldDef.domKey]) {
					t=parseTime(curr[fieldDef.domKey]);
					if (t) hField.value=formatDate(t,'h:mm a');
				}
				break;									
			case "HTML":
				if (fieldDef.sql){
					if(hField.value){
						hField.value=curr[fieldDef.domKey];
						if(fieldDef.altDisplay){
							funct=fieldDef.altDisplay.replace('$x',hField.value);
							appData.phpLookup(funct,'alt'+fieldDef.domKey);
						}
					}
					else document.getElementById('alt'+fieldDef.domKey).innerHTML='';
				}
				break;
				// CREATE CURRENCY TYPE AND INSERT CASE CURRENCY HERE!!!
			case "currency":
				if (!hField)
					alert(fieldDef.domKey);
				else
					hField.value = conCurrencyToField(curr[fieldDef.domKey], 2);
				break;
			default:
				if (!hField)alert(fieldDef.domKey);
				else hField.value=curr[fieldDef.domKey];
				break;
		}
	}
	if (sect == 'dlgAddCalendarEntry')
		if (appData.diary.passedInfo)
			if (appData.diary.passedInfo.load == true)
				appData.dlgAddCalendarEntry.completeLoad();
};
appData.isDirty=function(sect){
	var form=appData[sect].form;
	var cur=appData[sect].current;
	var field;
	for(var i=0;i<form.length;i++){
		field=form[i];
		if(field.defaultValue){if(cur[field.domKey]!=field.defaultValue)return true;}
		else if (cur[field.domKey]!='')return true;
	}
	return false;
};
appData.getFormVal=function(fieldDef){
	var hField;
	hField=document.getElementById(fieldDef.domKey);
	var value;
	if (hField){
		switch (fieldDef.type){
			case "select":
				value=hField[hField.selectedIndex].value;
				break;
			case "radio":
				for (key in fieldDef.options){
					hField=document.getElementById(fieldDef.domKey+'v'+key);
					if (hField.checked==true){
						value=hField.value;
						break;
					}
				}
				break;
			default:
				if (!hField)alert(fieldDef.domKey);
				else value=hField.value;
				break;
		}
	}
	if(value && value!='')return value;
	return false;
};
appData.addContacts=function(id, sect){
	var path='';
	if (!appData.existContacts) appData.existContacts=new Array();
	if (appData[sect].current) path=appData[sect].current;
	else path=appData[sect].data[id];
	if (!appData.existContacts[id]) appData.existContacts[id]=new Array();
	if (path.txtName) appData.existContacts[id].name=path.txtName;
	appData.existContacts[id].sect=new Object();
	appData.existContacts[id].sect[sect]=path.txtClaimID;
};
appData.selContact=function(field){
	if (document.getElementById(field).value =='')return false;
	var returnSplit=document.getElementById(field).value.split('~');
	var contact=appData[returnSplit[1]].data[returnSplit[0]];
	document.getElementById('txtAddress').value=(contact.txtAddress?contact.txtAddress:'');
	document.getElementById('txtAddress2').value=(contact.txtAddress2?contact.txtAddress2:'');
	document.getElementById('txtCity').value=(contact.txtCity?contact.txtCity:'');
	document.getElementById('txtState').value=(contact.txtState?contact.txtState:'');
	document.getElementById('txtZip').value=(contact.txtZip?contact.txtZip:'');
	document.getElementById('txtPhone').value=(contact.txtPhone?contact.txtPhone:'');
	document.getElementById('txtPhone2').value=(contact.txtPhone2?contact.txtPhone2:'');
	document.getElementById('txtFax').value=(contact.txtFax?contact.txtFax:'');
	document.getElementById('txtEmail').value=(contact.txtEmail?contact.txtEmail:'');
	document.getElementById('txtContact').value=(contact.txtContact?contact.txtContact:'');
	if (document.getElementById('selPrefContactMethod'))document.getElementById('selPrefContactMethod').value=(contact.selPrefContactMethod?contact.selPrefContactMethod:'');
	if (document.getElementById('txtAge'))document.getElementById('txtAge').value=(contact.txtAge?contact.txtAge:'');
	//TODO:Update fields that are specific to claimant and/or contact screen.
};
appData.clearLoss=function(){
	appData.prevID='';
	appData.prevSect='';
	appData.thisID='';
	if (appData.lossInfo) delete appData.lossInfo;
	if (appData.claimInfo) delete appData.claimInfo;
	if (appData.insuredInfo) delete appData.insuredInfo;
	if (appData.propertyInfo) delete appData.propertyInfo;
	if (appData.contactInfo) delete appData.contactInfo;
	if (appData.claimantInfo) delete appData.claimantInfo;
	if (appData.witnessInfo) delete appData.witnessInfo;
	if (appData.additionalInfo) delete appData.additionalInfo;
	if (appData.summaryInfo) delete appData.summaryInfo;	
	if (appData.existContacts) delete appData.existContacts;
};
appData.buildTree=function(){
	if (appData.tree) appData.tree.removeChildren(appData.tree.branches.root);
	if (appData.claimInfo)
	{
		for (x in appData.claimInfo.data)
		{
			appData.tree.branches['claimInfo'+x] = new YAHOO.widget.TextNode({label: "Claim: "+appData.claimInfo.data[x]['txtClaimNum'], href: "javascript:appData.advSect('claimInfo',"+x+");", expanded: true}, appData.tree.branches.root);
			if (appData.insuredInfo)
			{
				for(y in appData.insuredInfo.data)
				{
					if (appData.insuredInfo.data[y].txtClaimID == x)
					{
						appData.tree.branches['insuredInfo'+y] = new YAHOO.widget.TextNode({label: "Insured: "+appData.insuredInfo.data[y]['txtName'], href: "javascript:appData.advSect('insuredInfo',"+y+");", expanded: true}, appData.tree.branches['claimInfo'+x]);
						if (loadOnly) appData.addContacts(y,'insuredInfo');
						if (appData.insuredInfo.data[y].PropertyIDs)
						{
							for (z in appData.insuredInfo.data[y].PropertyIDs)
							{
								appData.tree.branches['propertyInfo'+z] = new YAHOO.widget.TextNode({label: appData.propertyInfo.data[z]['txtDescription'], href: "javascript:appData.advSect('propertyInfo',"+z+");", expanded: true}, appData.tree.branches['insuredInfo'+y]);		
							}	
						}
					}
				}
			}
			if (appData.claimantInfo)
			{
				for(y in appData.claimantInfo.data)
				{
					if (appData.claimantInfo.data[y].txtClaimID == x)
					{
						appData.tree.branches['claimantInfo'+y] = new YAHOO.widget.TextNode({label: "Claimant: "+appData.claimantInfo.data[y]['txtName'], href: "javascript:appData.advSect('claimantInfo',"+y+");", expanded: true}, appData.tree.branches['claimInfo'+x]);
						if (loadOnly) appData.addContacts(y,'claimantInfo');
						if (appData.claimantInfo.data[y].PropertyIDs)
						{
							for (z in appData.claimantInfo.data[y].PropertyIDs)
							{
								appData.tree.branches['propertyInfo'+z] = new YAHOO.widget.TextNode({label: appData.propertyInfo.data[z]['txtDescription'], href: "javascript:appData.advSect('propertyInfo',"+z+");", expanded: true}, appData.tree.branches['claimantInfo'+y]);		
							}	
						}
					}
				}
			}
			if (appData.witnessInfo)
			{
				for(y in appData.witnessInfo.data)
				{
					if (appData.witnessInfo.data[y].txtClaimID == x)
					{						
						appData.tree.branches['witnessInfo'+y] = new YAHOO.widget.TextNode({label: "Witness: "+appData.witnessInfo.data[y]['txtName'], href: "javascript:appData.advSect('witnessInfo',"+y+");", expanded: true}, appData.tree.branches['claimInfo'+x]);	
						if (loadOnly) appData.addContacts(y,'witnessInfo');
					}
				}
			}
			if (appData.additionalInfo)
			{
				for(y in appData.additionalInfo.data)
				{
					if (appData.additionalInfo.data[y].txtClaimID == x)
						appData.tree.branches['additionalInfo'+x] = new YAHOO.widget.TextNode({label: "Additional Info", href: "javascript:appData.advSect('additionalInfo',"+x+");", expanded: true}, appData.tree.branches['claimInfo'+x]);
				}
				if (appData.summaryInfo)
					if (appData.summaryInfo[x])
						appData.tree.branches['summaryInfo'+x] = new YAHOO.widget.TextNode({label: "Summary", href: "javascript:appData.advSect('summaryInfo',"+x+");", expanded: false}, appData.tree.branches['claimInfo'+x]);		
			}
		}
	}
	
	
	if (loadOnly)
	{
		if (appData.contactInfo)
			for(x in appData.contactInfo.data)
				if (loadOnly) appData.addContacts(x,'contactInfo');
	}
	
	if (document.getElementById('addNew')) document.getElementById('addNew').style.display=((!appData.summaryInfo)?"none":"block");
	appData.tree.render();
	appData.tree.root.refresh();
	loadOnly=0;
};
appData.phpLookup=function(funct,field){
	var AjaxCall = {
		handleSuccess:function(o){
			this.processResult(o);
		},
		handleFailure:function(o){
			alert(funct+' failed to run');
		},
		processResult:function(o){
			result=o.responseText;
			document.getElementById(field).innerHTML=result;
		},
		startRequest:function(){	
			if(funct){
				document.getElementById('txtJson').value=json_encode(funct);
				YAHOO.util.Connect.setForm(document.getElementById('json'));
			}
			else document.getElementById('txtJson').value='';
			YAHOO.util.Connect.asyncRequest('POST', 'ajax/custom.php',callback);			
		}
	};
	var callback =
	{
		success:AjaxCall.handleSuccess,
		failure:AjaxCall.handleFailure,
		scope:AjaxCall
	};
	AjaxCall.startRequest();
}
appData.autoScroll=function(){
	myLayout=icsLayout.getUnitByPosition('center');	
	layoutSizes=myLayout.getSizes();
	layoutHeight=layoutSizes.body.h;
	layoutHeight=100000;
	for (i=0;i<=layoutHeight;i++){
		myLayout.body.scrollTop=i;
	}
}
appData.getClaimID = function() {
	id = (appData.thisID?appData.thisID:appData.prevID);
	sect = (appData.thisID?appData.thisSect:appData.prevSect);
	
	if (appData.claimInfo) {
		if (appData.claimInfo.tempClaimID) {
			if (appData.claimInfo.tempClaimID != '') {
				id = appData.claimInfo.tempClaimID;
				appData.prevID = id;
				appData.claimInfo.lastKnownClaimID = id;
				appData.claimInfo.tempClaimID = '';
			}
		}
	}
	if (id == '') {
		if (appData.claimInfo) {
			return appData.claimInfo.lastKnownClaimID?appData.claimInfo.lastKnownClaimID:'';
		} else {
			return '';
		}
	} else {
		switch (sect) {
			case 'lossInfo':
				if (appData.claimInfo){
					return appData.claimInfo.lastKnownClaimID;
				} else {
					return '';
				}
				break;				
			case 'contactInfo': 
				return appData.claimInfo.lastKnownClaimID;
				break;
			case 'additionalInfo':
				appData.claimInfo.lastKnownClaimID = id;
				return appData.claimInfo.lastKnownClaimID;
				break;
			case 'summaryInfo':
				if (appData.claimInfo)	{
					if (id != undefined)
						appData.claimInfo.lastKnownClaimID = id;
					return appData.claimInfo.lastKnownClaimID;
				}
				else if (appData.shortForm.ClaimID)
					return appData.shortForm.ClaimID;
				break;
			case 'servSalvage':
				return appData.claimInfo.lastKnownClaimID;
				break;
			case 'addContact':
				return '';
				break;
			default:
				if (appData[sect]){
					if (appData[sect].data){
						if (appData[sect].data[id]){
							appData.claimInfo.lastKnownClaimID = appData[sect].data[id].txtClaimID; 
							return appData.claimInfo.lastKnownClaimID;
						}else{
							return appData.claimInfo.lastKnownClaimID;
						}
					}else{
						if (appData.claimInfo)
							return appData.claimInfo.lastKnownClaimID;
					}
				}
		}
	}
}
appData.createDialog=function(){
	appData.dialog[appData.dialog.id] = new YAHOO.widget.Panel(appData.dialog.id, {
		fixedcenter : true,
		visible : true, 
		constraintoviewport : true,
		draggable: true,
		modal: true,
		resize: true
	});
	appData.dialog[appData.dialog.id].render();
	appData.dialog[appData.dialog.id].show();
	
	appData.dialog.show=function(){
		appData.dialog[appData.dialog.id].show();	
	}
	appData.dialog.hide=function(){
		appData.dialog[appData.dialog.id].hide();			
	}
}
appData.loadContent=function(section, resFunct, json){
	var AjaxCall = {
		handleSuccess:function(o){
			this.processResult(o);
		},
		handleFailure:function(o){
			// Failure Handler
			alert('failed to load');
		},
		processResult:function(o)
		{
			loadOnly = 1;
			var js=o.responseText;
			if (js)
				eval(js);
			loadOnly = 0;
			if (resFunct) resFunct();
		},
		startRequest:function(){
			if(!json)
				json = new Object();
			document.getElementById('txtJson').value=json_encode(json);
			YAHOO.util.Connect.setForm(document.getElementById('json'));
			YAHOO.util.Connect.asyncRequest('POST', 'includes/forms/'+section+'/'+section+'Load.php', callback);
		}
	};
	var callback =
	{
		success:AjaxCall.handleSuccess,
		failure:AjaxCall.handleFailure,
		scope:AjaxCall
	};
	AjaxCall.startRequest();
}

appData.debug=function(){
	dummycode='take up space';
}