var strURLBase = "http://www.castsales.com";
//strURLBase = "http://localhost/CAST";
//strURLBase = "https://208.109.219.195:8443/sitepreview/http/castsales.com";
var strGenericErrorMessage = "An error has occurred.  Please try your transaction again.";
var divAjaxSection;
var divAjaxSection1;
var divAjaxSection2;
var calendar1;
var calendarOverlay;
var strUserID;

var cArray = new Array();
var jpArray = new Array(Array('id','jobPostingID','IDToEdit',''),Array('jt','jobTitle','tbJobTitle','Job Title'),Array('l','location','tbLocation','Location'),Array('jd','jobDescription','taJobDescription','Job Description'),Array('r','responsibilities','taResponsibilities','Responsibilities'),Array('q','qualifications','taQualifications','Qualifications'),Array('s','status','selStatus','Status'),Array('ds','displaySequence','tbDisplaySequence','Display Sequence'));
var pgArray = new Array(Array('id','productgroupID','IDToEdit',''),Array('l','longName','tbLongName','Product Group'),Array('ab','abbreviation','tbAbbreviation','Abbreviation'),Array('s','status','selStatus','Status'));
var prdArray = new Array(Array('id','productID','IDToEdit',''),Array('pgid','productGroupID','selProductGroup','Product Group'),Array('l','longName','tbLongName','Product Name'),Array('ab','abbreviation','tbAbbreviation','Abbreviation'),Array('s','status','selStatus','Status'));
var locArray = new Array(Array('id','locationID','IDToEdit',''),Array('l','locationName','tbLocationName','Location Name'),Array('s','status','selStatus','Status'));
var rgArray = new Array(Array('id','retailGroupID','IDToEdit',''),Array('n','retailGroupName','tbRetailGroupName','Retail Group Name'),Array('s','status','selStatus','Status'));
var rlArray = new Array(Array('id','retailLocationID','IDToEdit',''),Array('n','retailLocationName','tbRetailLocationName','Retail Location Name'),Array('rgid','retailGroupID','selRetailGroupID','Retail Group'),Array('lid','locationID','selLocationID','Location'),Array('s','status','selStatus','Status'));
var evtArray = new Array(Array('id','eventID','IDToEdit',''),Array('n','eventName','tbEventName','Event Name'),Array('lid','locationID','selLocationID','Location'),Array('egid','eventGroupID','selEventGroupID','Event Group'),Array('s','status','selStatus','Status'));
var clArray = new Array(Array('id','clientID','IDToEdit',''),Array('n','clientName','tbClientName','Client Name'),Array('ad','clientAddress','tbClientAddress','Client Address'),Array('p','clientPhone','tbClientPhone','Client Phone'),Array('cn','contactName','tbContactName','Contact Name'),Array('s','status','selStatus','Status'));
var srwArray = new Array(Array('esridSRW','ESRIDSRW','ESRIDToEditSRW',''),Array('eidSRW','engagementIDSRW','engagementIDToEditSRW',''),Array('sridSRW','salesRepIDSRW','selSalesRepIDSRW',''),Array('nSRW','salesRepNameSRW','selSalesRepIDSRW','Sales Rep'),Array('btSRW','beginTimeSRW','tbBeginTimeSRW','Begin Time'),Array('etSRW','endTimeSRW','tbEndTimeSRW','End Time'));
var engArray = new Array(Array('id','engagementID','IDToEdit',''),Array('btSRW','beginTimeSRW','tbBeginTimeSRW','Begin Time'),Array('etSRW','endTimeSRW','tbEndTimeSRW','End Time'));
var divisionArray = new Array(Array('id','divisionID','IDToEdit',''),Array('n','divisionName','tbDivisionName','Division Name'),Array('ad','divisionAddress','tbDivisionAddress','Division Address'),Array('p','divisionPhone','tbDivisionPhone','Division Phone'),Array('cn','contactName','tbContactName','Contact Name'),Array('s','status','selStatus','Status'),Array('cid','clientID','selClientID','Client'));
var dataPointArray = new Array(Array('id','datapointID','IDToEdit',''),Array('l','longName','tbLongName','Data Point'),Array('ab','abbreviation','tbAbbreviation','Abbreviation'),Array('s','status','selStatus','Status'));
var userArray = new Array(Array('id','userID','IDToEdit',''),Array('ln','lastName','tbLastName','Last Name'),Array('fn','firstName','tbFirstName','First Name'),Array('e','emailAddress','tbEmailAddress','Email Address'),Array('pwd','password','tbPassword','Password'),Array('opwd','password','hdPWD','Password'),Array('ut','userType','selUserType','User Type'),Array('s','status','selStatus','Status'));
var reportArray = new Array(Array('id','reportID','ReportWidget_IDToEdit',''),Array('rn','ReportWidget_ReportName','tbReportWidget_ReportName','Report Name'),Array('d','ReportWidget_DivisionID','selReportWidget_DivisionID','Division Name'),Array('rd','','hReportWidget_ReportData','Report Data'),Array('rt','ReportWidget_ReportType','selReportWidget_ReportType','Report Data'));
var eventGroupArray = new Array(Array('id','eventGroupID','IDToEdit',''),Array('n','eventGroupName','tbEventGroupName','Event Group Name'),Array('s','status','selStatus','Status'));
var teamArray = new Array(Array('id','teamID','IDToEdit',''),Array('tn','teamName','tbTeamName','Team Name'),Array('s','status','selStatus','Status'));
var salesGoalArray = new Array(Array('id','SalesGoalID','IDToEdit',''));
var commercialAssignmentArray = new Array(Array('id','ruleID','IDToEdit',''),Array('v','value','tbValue','Value'),Array('vt','valueType','selValueType','Value Type'),Array('srid','salesRepID','selUserID',''));
var leadTypeArray = new Array(Array('id','leadTypeID','IDToEdit',''),Array('n','leadTypeName','tbLeadTypeName','Lead Type Name'),Array('s','status','selStatus','Status'));
var commercialLeadArray = new Array(Array('id','leadID','IDToEdit',''),Array('cp','projectID','selProjectID','Project'),Array('lt','leadTypeID','selLeadTypeID','Lead Type'),Array('s','status','selStatus','Status'),Array('n','name','tbName','Name'),Array('srid','salesRepID','selUserID','Sales Rep'),Array('a1','address1','xAddress1','Address 1'),Array('a2','address2','xAddress2','Address 2'),Array('cty','city','tbCity','City'),Array('z','zip','tbZip','Zip Code'),Array('ph','phone','xPhone','Phone'),Array('svc','serviceRequest','selServiceRequest','Service Request'),Array('loa','letterOfAgency','selLetterOfAgency','Letter Of Agency'),Array('pb','phoneBill','selPhoneBill','Copy of Phone Bill'),Array('agmt','agreement','selAgreement','Agreement'),Array('subdt','submittedDate','xSubmittedDate','Submitted Date'),Array('onum','orderNumber','xOrderNum','Order Number'),Array('sgndate','signedDate','xSignedCopyDate','Signed Copy Date'),Array('notes','notes','xNotes','Notes'),Array('vidO','videoOrdered','tbVideoOrdered','Video Ordered'),Array('cdv1O','cdv1to3Ordered','tbCDV1to3Ordered','CDV 1 to 3 Ordered'),Array('cdv4O','cdv4to8Ordered','tbCDV4to8Ordered','CDV 4 to 8 Ordered'),Array('hsiLO','hsiLowOrdered','tbHSILowOrdered','HSI < 25mg Ordered'),Array('hsiHO','hsiHighOrdered','tbHSIHighOrdered','HSI > 25mg Ordered'),Array('rc1','releaseCode1','selReleaseCode1','Release Code 1'),Array('rc2','releaseCode2','selReleaseCode2','Release Code 2'),Array('rc3','releaseCode3','selReleaseCode3','Release Code 3'),Array('rdt','releaseDate','xReleaseDate','Release Date'),Array('sp','salesPresentation','selSalesPresentation','Sales Presentation'),Array('cba','cbaDate','xCBADate','Callback/Appt Date'),Array('cbat','cbaTime','xCBATime','Callback/Appt Time'));
var commercialProjectArray = new Array(Array('id','projectID','IDToEdit',''),Array('n','projectName','tbProjectName','Project Name'),Array('s','status','selStatus','Status'));

//				   Description, code, Array,   Widget Name, Save Action Field, Containing DIV, 	 Write Output To,  Callback Variable
cArray[0] = Array('Job Posting','jp', jpArray, 'salesRepWidget', 'saveAction', 'divAjaxSection', 'divTableSection', 'saveCallback');
cArray[1] = Array('Product Group','pg', pgArray, 'salesRepWidget', 'saveAction', 'divAjaxSection', 'divTableSection', 'saveCallback');
cArray[2] = Array('Product','prd', prdArray, 'salesRepWidget', 'saveAction', 'divAjaxSection', 'divTableSection', 'saveCallback');
cArray[3] = Array('Location','loc', locArray, 'salesRepWidget', 'saveAction', 'divAjaxSection', 'divTableSection', 'saveCallback');
cArray[4] = Array('Retail Group','rg', rgArray, 'salesRepWidget', 'saveAction', 'divAjaxSection', 'divTableSection', 'saveCallback');
cArray[5] = Array('Retail Location','rl', rlArray, 'salesRepWidget', 'saveAction', 'divAjaxSection', 'divTableSection', 'saveCallback');
cArray[6] = Array('Event','evt', evtArray, 'salesRepWidget', 'saveAction', 'divAjaxSection', 'divTableSection', 'saveCallback');
cArray[7] = Array('Client','cl', clArray, 'salesRepWidget', 'saveAction', 'divAjaxSection', 'divTableSection', 'saveCallback');
cArray[8] = Array('Sales Rep','srw', srwArray, 'salesRepWidget', 'saveActionSRW', 'divAjaxSection2', 'divSalesRepList', 'saveSalesRepCallback');
cArray[9] = Array('Engagement','eng', engArray, 'engagementWidget', 'saveAction', 'divAjaxSection', 'divEngagementList2', 'saveEngagementCallback'); 
cArray[10] = Array('Division','div', divisionArray, 'divsionWidget', 'saveAction', 'divAjaxSection', 'divTableSection', 'saveCallback'); 
cArray[11] = Array('Data Point','dp', dataPointArray, 'salesRepWidget', 'saveAction', 'divAjaxSection', 'divTableSection', 'saveCallback');
cArray[12] = Array('User','usr', userArray, 'salesRepWidget', 'saveAction', 'divAjaxSection', 'divTableSection', 'saveCallback');
cArray[13] = Array('Report','rpt', reportArray, 'reportWidget', 'ReportWidget_saveAction', 'divAjaxSection', 'divTableSection', 'saveCallbackAlert');
cArray[14] = Array('Event Group','eg', eventGroupArray, 'salesRepWidget', 'saveAction', 'divAjaxSection', 'divTableSection', 'saveCallback');
cArray[15] = Array('Report','rpt', reportArray, 'reportWidget', 'ReportWidget_saveAction', 'divAjaxSection', 'divTableSection', 'saveCallback');
cArray[16] = Array('Team','tm', teamArray, 'salesRepWidget', 'saveAction', 'divAjaxSection', 'divTableSection', 'saveCallback');
cArray[17] = Array('Sales Goal','sg', salesGoalArray, 'salesRepWidget', 'saveAction', '', 'divTableSection', 'saveCallbackNoHide');
cArray[18] = Array('Commercial Assignment Rule','car', commercialAssignmentArray, 'salesRepWidget', 'saveAction', 'divAjaxSection', 'divTableSection', 'saveCallback');
cArray[19] = Array('Lead Type','lt', leadTypeArray, 'salesRepWidget', 'saveAction', 'divAjaxSection', 'divTableSection', 'saveCallback');
cArray[20] = Array('Commercial Lead','cml', commercialLeadArray, 'salesRepWidget', 'saveAction', 'divAjaxSection', 'divTableSection', 'saveCallback');
cArray[21] = Array('Commercial Project','cp', commercialProjectArray, 'salesRepWidget', 'saveAction', 'divAjaxSection', 'divTableSection', 'saveCallback');

var handleFailure = function(o) {
	alert(strGenericErrorMessage);
};

var handleSuccess_GetData = function(o) {
    if (o.status = "200") {
		document.getElementById(o.argument[0]).innerHTML = o.responseText;
		if (o.argument[1].length > 0) {
			eval(o.argument[1]).center();
			eval(o.argument[1]).show();
		}
	}
    else
		alert("Unable to complete request.  Please try your transaction again.");
};
var handleSuccess = function(o) {
    if (o.status = "200") {
		document.getElementById(cArray[o.argument[0]][6]).innerHTML = o.responseText;
		if (cArray[o.argument[0]][5].length > 0)
			eval(cArray[o.argument[0]][5]).hide();
		if (o.argument[1].length > 0) {
			eval(o.argument[1]);
		}
	}
    else
		alert("Unable to complete request.  Please try your transaction again.");
};
var handleSuccessDisplayMessage = function(o) {
    if (o.status = "200") {
		document.getElementById(o.argument[0]).innerHTML = o.responseText;
	}
    else
		alert("Unable to complete request.  Please try your transaction again.");
};
var handleSuccess_Alert = function(o) {
    if (o.status = "200") {
		alert("Item was successfully saved.");
		if (o.argument[0].length > 0) {
			eval(o.argument[0]).hide();
		}
	}
    else
		alert("Unable to complete request.  Please try your transaction again.");
};
var handleSuccess_Login = function(o) {
    if (o.status = "200") {
		if (o.responseText == 0)
			document.location.href = strURLBase + "/index.php?target=menu";
		else
			document.getElementById("divMessage").innerHTML = "<b><font style='color:red'>Email Address/Password Incorrect</font></b>";
	}
    else
		alert("Unable to complete request.  Please try your transaction again.");
};

var handleSuccess_CheckData = function(o) {
	if (o.status = "200") {
		if (o.responseText == 0) {
			saveItem(13);
		}
		else
			if (confirm("A report with this name already exists.  Click \"OK\" to overwrite it, or \"Cancel\" to enter a different name.")) {
				document.getElementById("ReportWidget_IDToEdit").value = parseInt(o.responseText);
				document.getElementById("ReportWidget_saveAction").value = "EDIT";
				saveItem(13);
			}
	}
    else
		alert("Unable to complete request.  Please try your transaction again.");
};

var handleSuccess_UpdateOptions = function(o) {
    if (o.status = "200") {
		var theOptions = o.responseText.replace(/^\s+|\s+$/g,"").split("|");
		var theObject = o.argument[0];// + models[models.length-1].replace(/^\s+|\s+$/g,"");			

		for(var count = document.getElementById(theObject).options.length - 1; count >= 0; count--) {
        	document.getElementById(theObject).options[count] = null;
    	}
		document.getElementById(theObject).options[0] = new Option("Choose " + o.argument[1] + "...",0);
		for(i=1; i < theOptions.length; i++) {
			var optionsArray = theOptions[i-1].split("*");
			document.getElementById(theObject).options[i] = new Option(optionsArray[1],optionsArray[0]);
		}
		document.getElementById(theObject).value = 0;
		//alert(document.getElementById(theObject).value);
	}
    else
		alert("Unable to complete request.  Please try your transaction again.");
};

var getDataCallback = {success:handleSuccess_GetData, failure:handleFailure, argument:['divEngagementList2','divAjaxSection1'] };
var getDivisionAssociationsCallback = {success:handleSuccess_GetData, failure:handleFailure, argument:['divDivisionAssociations','divAjaxSection1'] };
var setDivisionAssociationsCallback = {success:handleSuccess_Alert,failure:handleFailure, argument:['divAjaxSection1']};
var getCalendarCallback = {success:handleSuccess_GetData, failure:handleFailure, argument:['divCalendar',''] };
var getSalesRepsCallback = {success:handleSuccess_GetData, failure:handleFailure, argument:['divSalesRepList','divAjaxSection1']};
var checkExistingRptCallback = {success:handleSuccess_CheckData, failure:handleFailure};

var saveCallback = {success:handleSuccess,failure:handleFailure,argument:[1,'']};
var saveCallbackNoHide = {success:handleSuccess,failure:handleFailure,argument:[17,'']};
var saveCallbackAlert = {success:handleSuccess_Alert,failure:handleFailure, argument:['divAjaxSection']};
var saveEngagementCallback = {success:handleSuccess,failure:handleFailure,argument:[9, 'getCalendar()']};
var saveSalesRepCallback  = {success:handleSuccess,failure:handleFailure,argument:[8,'']};

var emulateCallback = {success:handleSuccessDisplayMessage,failure:handleFailure,argument:['divEmulationMessage']};

var updateEventOptionsCallback = {success:handleSuccess_UpdateOptions, failure:handleFailure, argument:['selEventID','Event']};
var updateRetailOptionsCallback = {success:handleSuccess_UpdateOptions, failure:handleFailure, argument:['selRetailLocationID','Retail Location']};
var updateDoorToDoorOptionsCallback = {success:handleSuccess_UpdateOptions, failure:handleFailure, argument:['selLocationID','Location']};

var loginCallback = {success:handleSuccess_Login,failure:handleFailure};

function hideWidget(arrayIndex) {
	eval(cArray[arrayIndex][5]).hide();
}

function onload_Page(ajaxSectionWidth){
	divAjaxSection = new YAHOO.widget.Panel('divAjaxSection', { width:ajaxSectionWidth, visible:false, draggable:true, close:true, constraintoviewport:true, zIndex:98}); 
	divAjaxSection.render();
}
function onload_Divisions() {
	divAjaxSection = new YAHOO.widget.Panel('divAjaxSection', { modal:false, width:'300px', visible:false, draggable:true, close:true, constraintoviewport:true, zIndex:2}); 
	divAjaxSection.render();
	divAjaxSection1 = new YAHOO.widget.Panel('divAjaxSection1', { modal:false, width:'650px', visible:false, draggable:true, close:true, constraintoviewport:true, zIndex:1}); 
	divAjaxSection1.render();
}

function onload_Engagements(){
	divAjaxSection = new YAHOO.widget.Panel('divEditEngagementSection', { modal:false, width:'800px', visible:false, draggable:true, close:true, constraintoviewport:true, zIndex:2}); 
	divAjaxSection.render();
	divAjaxSection1 = new YAHOO.widget.Panel('divEngagementList', { modal:false, width:'800px', visible:false, draggable:true, close:true, constraintoviewport:true, zIndex:1}); 
	divAjaxSection1.render();
	divAjaxSection2 = new YAHOO.widget.Panel('salesRepWidget', { modal:false, width:'300px', visible:false, draggable:true, close:true, constraintoviewport:true, zIndex:99}); 
	divAjaxSection2.render();
	calendarOverlay = new YAHOO.widget.Panel('divCalendarOptions', { modal:false, width:'350px', visible:false, draggable:true, close:true, constraintoviewport:true});
	calendarOverlay.render();
}

function onload_EOS() {
//	if (document.getElementById("EngagementType").value != "D")
//		document.getElementById("D_1").disabled = true;
}

function onload_Callback() {
	populateOptions('E','selDivisionID');
	populateOptions('D','selDivisionID');
	populateOptions('R','selDivisionID');
	showHideSelects();
	calendarOverlay = new YAHOO.widget.Overlay("calendarOverlay",{context:["tbDate","tl","tr"]});
	calendar1 = new YAHOO.widget.Calendar("cal1Container", {close:true, visible:false});
	calendarOverlay.render(document.body);
	calendarOverlay.hide();
	calendar1.render();
	calendar1.hide();
	calendar1.hideEvent.subscribe(hideOverlay, this, true);
}
function hideOverlay () {
	calendarOverlay.hide();
}

function newItem(arrayIndex) {
	for (i=0; i<cArray[arrayIndex][2].length; i++) {
		if ((cArray[arrayIndex][2][i][2]).substring(0,1) == "t" || (cArray[arrayIndex][2][i][2]).substring(0,1) == "x")
			document.getElementById(cArray[arrayIndex][2][i][2]).value = '';
		else
			if ((cArray[arrayIndex][2][i][2]).substring(0,1) == "s") {
				if (arrayIndex == 13) {
					document.getElementById(cArray[arrayIndex][2][i][2]).value = document.getElementById(cArray[arrayIndex][2][i][1]).value;
				}
				else {
					document.getElementById(cArray[arrayIndex][2][i][2]).selectedIndex = 0;						
				}
			}
	}
	document.getElementById(cArray[arrayIndex][4]).value = 'ADD';
	if (arrayIndex == 8)
		document.getElementById("engagementIDToEditSRW").value = document.getElementById("IDToEdit").value
	eval(cArray[arrayIndex][5]).show();
}

function editItem(arrayIndex, id) {
	for (i=0; i<cArray[arrayIndex][2].length; i++) {
		//alert(cArray[arrayIndex][2][i][2]);
		//alert(cArray[arrayIndex][2][i][1]+id);
		document.getElementById(cArray[arrayIndex][2][i][2]).value = document.getElementById(cArray[arrayIndex][2][i][1]+id).value
	}
	document.getElementById(cArray[arrayIndex][4]).value = 'EDIT';
	eval(cArray[arrayIndex][5]).center();
	eval(cArray[arrayIndex][5]).show();
}

function validateItem(arrayIndex)
{
	strErrors = "";
	for (i=0; i<cArray[arrayIndex][2].length; i++) {
		//alert(cArray[arrayIndex][2][i][2]);
		if ((cArray[arrayIndex][2][i][2]).substring(0,1) == "t") {
			if (document.getElementById(cArray[arrayIndex][2][i][2]).value.length < 1)
				strErrors = strErrors + "- " + cArray[arrayIndex][2][i][3] + " cannot be blank.\n";
		}
		else {
			if ((cArray[arrayIndex][2][i][2]).substring(0,1) == "s")
				if (document.getElementById(cArray[arrayIndex][2][i][2]).value == "0")
					strErrors = strErrors + "- You must choose a value for " + cArray[arrayIndex][2][i][3] + ".\n";
		}
	}
	if (strErrors.length > 0) {
		alert('Correct the error(s) below and submit again.\n' + strErrors);
		return false;
	}
	return true;
}

function saveItem(arrayIndex) {
	var callbackFunction = eval(cArray[arrayIndex][7]);
	if (validateItem(arrayIndex)) {
		var strURL = strURLBase + "/save.php";
		var postData;
		if (document.getElementById(cArray[arrayIndex][4]).value == "ADD")
			postData = "a=a"+cArray[arrayIndex][1];
		else {
			postData = "a=e"+cArray[arrayIndex][1];
		}
		for (i=0; i<cArray[arrayIndex][2].length; i++) {
				postData = postData + "&" + cArray[arrayIndex][2][i][0] + "=" + escape(document.getElementById(cArray[arrayIndex][2][i][2]).value);
		}
		//alert(postData);
		var request = YAHOO.util.Connect.asyncRequest('POST', strURL, callbackFunction, postData);
	}
}
function deleteItem(arrayIndex, id) {
	var callbackFunction = eval(cArray[arrayIndex][7]);
	if (confirm('Are you sure you want to delete this item?')) {
		var strURL = strURLBase + "/save.php";
		var postData = "a=d" + cArray[arrayIndex][1] + "&id=" + document.getElementById(cArray[arrayIndex][2][0][1]+id).value;
		if (arrayIndex == 9) {
			postData = postData + "&d=" + document.getElementById("date"+id).value;
			postData = postData + "&did=" + document.getElementById("CalendarOptions_DivisionID").value;
			postData = postData + "&engt=" + document.getElementById("CalendarOptions_EngagementTypes").value
		}
		var request = YAHOO.util.Connect.asyncRequest('POST', strURL, callbackFunction, postData);
	}
}
function deleteESR(arrayIndex, action, id) {
	var callbackFunction = eval(cArray[arrayIndex][7]);
	if (confirm('Are you sure you want to delete this item?')) {
		var strURL = strURLBase + "/save.php";
		var postData = "a=" + action + "&esridSRW=" + document.getElementById("ESRIDSRW"+id).value;
		postData = postData + "&eidSRW=" + document.getElementById("IDToEdit").value;
		//alert(postData);
		var request = YAHOO.util.Connect.asyncRequest('POST', strURL, callbackFunction, postData);
	}
}

function newEngagement() {
	document.getElementById("selDivisionID").value = document.getElementById("CalendarOptions_DivisionID").value;
	document.getElementById("tbDate").value = '';
	document.getElementById("tbBeginTime").value = '';
	document.getElementById("tbEndTime").value = '';
	document.getElementById("selRetailLocationID").style.display="";
	document.getElementById("selEventID").style.display="none";
	document.getElementById("selLocationID").style.display="none";
	document.getElementById("saveAction").value = 'ADD';
	document.getElementById("divSalesRepList").innerHTML = "You must save the Event Details before adding Sales Reps.";
	showHideSelects();
	divAjaxSection.center();
	divAjaxSection.show();
}
function editEngagement(id) {
	document.getElementById("IDToEdit").value = document.getElementById("engagementID"+id).value;
	document.getElementById("selDivisionID").value = document.getElementById("divisionID"+id).value;
	document.getElementById("selEngagementType").value = document.getElementById("engagementType"+id).value;
	showHideSelects();
	document.getElementById("selRetailLocationID").value = document.getElementById("retailLocationID"+id).value;
	document.getElementById("selEventID").value = document.getElementById("eventID"+id).value;
	document.getElementById("selLocationID").value = document.getElementById("doorToDoorArea"+id).value;
	document.getElementById("tbDate").value = document.getElementById("date"+id).value;
	document.getElementById("tbBeginTime").value = document.getElementById("beginTime"+id).value;
	document.getElementById("tbEndTime").value = document.getElementById("endTime"+id).value;
	document.getElementById("saveAction").value = 'EDIT';
	getEngagementSalesReps(document.getElementById("IDToEdit").value);
	divAjaxSection.center();
	divAjaxSection.show();
}
function saveEngagement() {
		var strURL = strURLBase + "/save.php";
		var postData;
		if (document.getElementById("saveAction").value == "ADD")
			postData = "a=aeng";
		else {
			postData = "a=eeng";
			postData = postData + "&id=" + document.getElementById("IDToEdit").value;
		}
		postData = postData + "&cid=" + document.getElementById("selDivisionID").value;
		postData = postData + "&ent=" + document.getElementById("selEngagementType").value;
		postData = postData + "&lid=" + document.getElementById("selLocationID").value;
		postData = postData + "&rlid=" + document.getElementById("selRetailLocationID").value;
		postData = postData + "&eid=" + document.getElementById("selEventID").value;
		postData = postData + "&d=" + document.getElementById("tbDate").value;
		postData = postData + "&bt=" + document.getElementById("tbBeginTime").value;
		postData = postData + "&et=" + document.getElementById("tbEndTime").value;
		postData = postData + "&engt=" + document.getElementById("CalendarOptions_EngagementTypes").value;
		var request = YAHOO.util.Connect.asyncRequest('POST', strURL, saveEngagementCallback, postData);
}
function showHideSelects()
{
	if (document.getElementById("selEngagementType").value == "R") {
		document.getElementById("selRetailLocationID").style.display="";
		document.getElementById("selEventID").style.display="none";
		document.getElementById("selLocationID").style.display="none";
	}
	else if (document.getElementById("selEngagementType").value == "D") {
		document.getElementById("selRetailLocationID").style.display="none";
		document.getElementById("selEventID").style.display="none";
		document.getElementById("selLocationID").style.display="";		
	}
	else if (document.getElementById("selEngagementType").value == "E") {
		document.getElementById("selRetailLocationID").style.display="none";
		document.getElementById("selEventID").style.display="";
		document.getElementById("selLocationID").style.display="none";
	}
	document.getElementById("selRetailLocationID").value="0";
	document.getElementById("selEventID").value="0";
	document.getElementById("selLocationID").value="0";
}
function displayDayDetails(date, divisionID, engagementTypes)
{
	var strURL = strURLBase + "/save.php";
	var postData = "a=ged&d=" + date + "&did=" + divisionID + "&et=" + engagementTypes;
	var request = YAHOO.util.Connect.asyncRequest('POST', strURL, getDataCallback, postData);
}

function getEngagementSalesReps(engagementID)
{
	var strURL = strURLBase + "/save.php";
	var postData = "a=gesr&eid=" + engagementID;
	var request = YAHOO.util.Connect.asyncRequest('POST', strURL, getSalesRepsCallback, postData);
}

function getCalendar()
{
	var strURL = strURLBase + "/save.php";
	var postData = "a=gcal&m=" + document.getElementById("selMonth").value + "&y=" + document.getElementById("selYear").value;
	postData += "&d=" + document.getElementById("CalendarOptions_DivisionID").value;
	postData += "&et=" + document.getElementById("CalendarOptions_EngagementTypes").value;
	var request = YAHOO.util.Connect.asyncRequest('POST', strURL, getCalendarCallback, postData);
}

function validateNumericEntry(theObject)
{
	if (isNaN(theObject.value)) {
		alert ("The value you enter must be numeric.  Resetting to 0.");
		theObject.focus();
		theObject.value = 0;
		setNumberOfContacts();
	}
}

function setNumberOfContacts() {
	if (!isNaN(document.getElementById("D_2").value) && !isNaN(document.getElementById("D_3").value))
		document.getElementById("D_1").value = parseInt(document.getElementById("D_2").value) + parseInt(document.getElementById("D_3").value);
}

function validateEOSFormInput ()
{
	strErrors = "";
	document.getElementById("D_1").disabled = false;
	if (parseInt(document.getElementById('D_1').value) != (parseInt(document.getElementById('D_2').value) + parseInt(document.getElementById('D_3').value)))
		strErrors = strErrors + "- # of Contacts must equal Retention + Sales Attempts\n";
	if (parseInt(document.getElementById('D_3').value) != (parseInt(document.getElementById('D_4').value) + parseInt(document.getElementById('D_5').value) + parseInt(document.getElementById('D_9').value)))
		strErrors = strErrors + "- # of Sales Attempts must equal HH Sold + Not Sold + Call Backs\n";


	if (strErrors.length > 0) {
		alert("Correct the following errors: \n" + strErrors);
		return false;
	}
	else
		return true;
}

function validateEOSD2DFormInput()
{
	strErrors = "";
//	locationIDArray = document.getElementById('locationIDs').value.split(",");

//	for (var i=0; i < locationIDArray.length-1; i++) {
		if (parseInt(document.getElementById('D_1').value) > (parseInt(document.getElementById('D_8').value)))
			strErrors = strErrors + "- # of Contacts cannot exceed the # of Doors\n";
		if (parseInt(document.getElementById('D_1').value) != (parseInt(document.getElementById('D_4').value) + parseInt(document.getElementById('D_5').value) + parseInt(document.getElementById('D_9').value)))
			strErrors = strErrors + "- # of Contacts must equal HH Sold + Not Sold + Call Backs\n";
		if (parseInt(document.getElementById('P_3').value) > (parseInt(document.getElementById('D_4').value)))
			strErrors = strErrors + "- Individual Product sales cannot exceed the # of HH Sold for a given location\n";
//	}
	
	if (strErrors.length > 0) {
		alert("Correct the following errors: \n" + strErrors);
		return false;
	}
	else
		return true;
}

function validateNewCallback() {
	strErrors = "";
	if (document.getElementById("tbDate").value.substring(4,5) != "-" || (document.getElementById("tbDate").value.substring(6,7) != "-" && document.getElementById("tbDate").value.substring(7,8) != "-"))
		strErrors += "- Date must be in the format YYYY-MM-DD.\n";
	if (document.getElementById("selEventID").value == 0 && document.getElementById("selLocationID").value == 0 && document.getElementById("selRetailLocationID").value == 0)
		strErrors += "- You must choose a location.\n";
	if (strErrors.length > 0) {
		alert(strErrors);
		return false;
	}
	else
		return true;
}

function validateNewInstall() {
	strErrors = "";
	if (document.getElementById("tbDate").value.substring(4,5) != "-" || (document.getElementById("tbDate").value.substring(6,7) != "-" && document.getElementById("tbDate").value.substring(7,8) != "-"))
		strErrors += "- Date must be in the format YYYY-MM-DD.\n";
	if (strErrors.length > 0) {
		alert(strErrors);
		return false;
	}
	else
		return true;
}


function processLogin() {
	var strURL = strURLBase + "/save.php";
	var postData = "a=login&e=" + document.getElementById("tbUsername").value;
	postData = postData + "&p=" + document.getElementById("tbPassword").value;
	document.getElementById("divMessage").innerHTML = "<b>Processing Login...</b>";
	var request = YAHOO.util.Connect.asyncRequest('POST', strURL, loginCallback, postData);
}

function IsEnterKey(e) {
	if(e && e.which){ //if which property of event object is supported (NN4)
		e = e;
		characterCode = e.which; //character code is contained in NN4's which property
	}
	else{
		e = event;
		characterCode = e.keyCode; //character code is contained in IE's keyCode property
	}

	if(characterCode == 13) //if generated character code is equal to ascii 13 (if enter key)
		processLogin();
	else
		return false; 
}
/*=====================================================*/
/* CALENDAR FUNCTIONS
/*=====================================================*/
function calendarOnSelect(type, args, obj) {
	var dates=args[0];
	var date=dates[0];
	var year = date[0], month = date[1], day = date[2];
	obj.value = year + "-" + month + "-" + day;
	calendar1.hide();
	calendar1.selectEvent.unsubscribe();
}
function onload_ReportGenerator() {
	calendarOverlay = new YAHOO.widget.Overlay("calendarOverlay",{context:["tbDate", "tl", "tr"]});
	calendar1 = new YAHOO.widget.Calendar("cal1Container", {close:true, visible:false});
	calendarOverlay.render(document.body);
	calendar1.render();
	calendar1.hide();
}
function onload_ScheduleGenerator() {
	calendarOverlay = new YAHOO.widget.Overlay("calendarOverlay",{xy:[225,300]});
	calendar1 = new YAHOO.widget.Calendar("cal1Container", {close:true, visible:false});
	calendarOverlay.render(document.body);
	calendar1.render();
	calendar1.hide();
	document.getElementById("selReportType").value = "S";
}
function onload_CommercialLead() {
	calendarOverlay = new YAHOO.widget.Overlay("calendarOverlay",{zIndex:99,context:["xReleaseDate", "tl", "tr"]});
	calendar1 = new YAHOO.widget.Calendar("cal1Container", {close:true, visible:false});
	calendarOverlay.render(document.body);
	calendar1.render();
	calendar1.hide();
}
/*=====================================================*/
/* MISCELLANEOUS FUNCTIONS
/*=====================================================*/
function switchFormAction() {
	var url = "index.php?target=";
	switch (document.getElementById('selReportType').value) {
		case "D" :
			document.forms['frmReportCriteria'].action = url + "doortodoorreport";
			break;
		case "R":
			document.forms['frmReportCriteria'].action = url + "retailreport";
			break;
		case "E":
			document.forms['frmReportCriteria'].action = url + "eventreport";
			break;
		case "H":
			document.forms['frmReportCriteria'].action = url + "hoursreport";
			break;
		case "IE":
			document.forms['frmReportCriteria'].action = url + "installreport";
			break;
		case "IR":
			document.forms['frmReportCriteria'].action = url + "installreport";
			break;
		case "C":
			document.forms['frmReportCriteria'].action = url + "commercialreport";
			break;
	}
}

function openCalendarOptions() {
	document.getElementById('CalendarOptions_selDivisionID').value = document.getElementById('CalendarOptions_DivisionID').value;
	if (document.getElementById('CalendarOptions_EngagementTypes').value.indexOf('E') >= 0)
		document.getElementById('CalendarOptions_EngagementTypeE').checked = true;
	else
		document.getElementById('CalendarOptions_EngagementTypeE').checked = false;
	if (document.getElementById('CalendarOptions_EngagementTypes').value.indexOf('R') >= 0)
		document.getElementById('CalendarOptions_EngagementTypeR').checked = true;
	else
		document.getElementById('CalendarOptions_EngagementTypeR').checked = false;
	if (document.getElementById('CalendarOptions_EngagementTypes').value.indexOf('D') >= 0)
		document.getElementById('CalendarOptions_EngagementTypeD').checked = true;
	else
		document.getElementById('CalendarOptions_EngagementTypeD').checked = false;
	calendarOverlay.center();
	calendarOverlay.show();
}
function setCalendarOptions() {
	document.getElementById('CalendarOptions_DivisionID').value = document.getElementById('CalendarOptions_selDivisionID').value;
	var strEngagementTypes = "";
	if (document.getElementById('CalendarOptions_EngagementTypeE').checked)
		strEngagementTypes += "E";
	if (document.getElementById('CalendarOptions_EngagementTypeR').checked)
		strEngagementTypes += "R";
	if (document.getElementById('CalendarOptions_EngagementTypeD').checked)
		strEngagementTypes += "D";
	document.getElementById('CalendarOptions_EngagementTypes').value = strEngagementTypes;
	calendarOverlay.hide();
	getCalendar();
	populateOptions('E',"CalendarOptions_DivisionID");
	populateOptions('D',"CalendarOptions_DivisionID");
	populateOptions('R',"CalendarOptions_DivisionID");
}

function switchFormActionSchedule() {
	var url = "index.php?target=";
	if (document.getElementById('selReportType').value =="S") {
		document.forms['frmReportCriteria'].action = url + "schedule";
		document.getElementById("beginDateRow").style.display="";
		document.getElementById("endDateRow").style.display="";
		
		document.getElementById("monthRow").style.display="none";
		document.getElementById("yearRow").style.display="none";
	}
	else {
		document.forms['frmReportCriteria'].action = url + "masterschedule";
		
		document.getElementById("beginDateRow").style.display="none";
		document.getElementById("endDateRow").style.display="none";
		
		document.getElementById("monthRow").style.display="";
		document.getElementById("yearRow").style.display="";
	}
}
function copyHTML() {
	document.getElementById("pageHTML").value = document.getElementById("reportOutput").innerHTML;
}

function checkForExistingReportName () {
	var strURL = strURLBase + "/save.php";
	var postData = "a=checkrpt&n=" + document.getElementById("tbReportWidget_ReportName").value;
	document.getElementById("hReportWidget_ReportData").value = document.getElementById("divReportData").innerHTML;
	var request = YAHOO.util.Connect.asyncRequest('POST', strURL, checkExistingRptCallback, postData);
}

function populateOptions(strEngagementType, strDivisionIDElement) {
	var strURL = strURLBase + "/save.php";
	var postData = "a=go" + strEngagementType + "&did=" + document.getElementById(strDivisionIDElement).value;
	switch (strEngagementType) {
		case "E":
			var strCallback = eval('updateEventOptionsCallback');
			break;
		case "R":
			var strCallback = eval('updateRetailOptionsCallback');
			break;
		case "D":
			var strCallback = eval('updateDoorToDoorOptionsCallback');
			break;
	}
	var request = YAHOO.util.Connect.asyncRequest('POST', strURL, strCallback, postData);
}
/*=====================================================*/
/* DIVISION ASSOCIATION FUNCTIONS
/*=====================================================*/
function displayDivisionAssociations (divisionID, engagementType) {
	document.getElementById("DivisionAssociations_DivisionID").value = divisionID;
	document.getElementById("DivisionAssociations_EngagementType").value = engagementType;
	var strURL = strURLBase + "/save.php";
	var postData = "a=da&did=" + divisionID + "&et=" + engagementType
	var request = YAHOO.util.Connect.asyncRequest('POST', strURL, getDivisionAssociationsCallback, postData);
}
function saveDivisionAssociations (action) {
	var strURL = strURLBase + "/save.php";
	theForm = document.forms['frmDivisionAssociations'];
	var isChecked;
	var postData = "a=" + action + "&did=" + document.getElementById("DivisionAssociations_DivisionID").value + "&et=" + document.getElementById("DivisionAssociations_EngagementType").value;
	for (var i=0; i < theForm.length; i++) {
		if (theForm.elements[i].id.substring(0,1) == "V") {
			isChecked = document.getElementById(theForm.elements[i].id).checked ? 1 : 0;
			postData += "&" + theForm.elements[i].id + "=" + isChecked;
		}
	}
	var request = YAHOO.util.Connect.asyncRequest('POST', strURL, setDivisionAssociationsCallback, postData);
}

function validatePasswordEntries() {
	var returnValue;
	if (document.getElementById("tbNewPassword").value != document.getElementById("tbConfirmNewPassword").value) {
		alert("New Password and Confirm New Password must match.");
		returnValue = false;
	}
	else {
		if (document.getElementById("tbNewPassword").value.length < 5) {
			alert("The new password must contain at least 6 characters.");
			returnValue = false;
		}
		else
			returnValue = true;
	}
	return returnValue;
}
function setEmulation(onOff) {
	var strURL = strURLBase + "/save.php";
	if (onOff == 1)
		var postData = "a=emulate&uid=" + document.getElementById("selUserID").value;
	else
		var postData = "a=clearemulation";
	var request = YAHOO.util.Connect.asyncRequest('POST', strURL, emulateCallback, postData);
}

function SetFilter() {
	var extra = "";
	var loc = strURLBase + '/index.php?target=mcl&DISPLAY=1';
	if (document.getElementById('FILTER_SALESREPID').value != "")
		extra += '&FILTER_SALESREPID=' + document.getElementById('FILTER_SALESREPID').value;
		
	if (document.getElementById('FILTER_PROJECTID').value.length > 0)
		extra += '&FILTER_PROJECTID=' + document.getElementById('FILTER_PROJECTID').value;
	
	window.location.href = loc + extra;
}