// -----------------------------------------------------//
// SAVE FORM FIELD SELECTIONS IN COOKIES 				//
// saveRestoreForm.js									//
// -----------------------------------------------------//
// 
//  9/13/07 VS for /employer/createad/index 
//  1. fields wont be loaded from another employer account
//	2. text fields will not be overwritten if already there from db
//  3. saves all form fields in one cookie, ad body in up to 2 cookies
//  4. saves fields: joblocation to autonotify 
//	5. cookies expire after 30 days or when next step is clicked
//  6. category cannot be saved at this time because the checkboxes have the same name
//
// ------------------------------------------------
// This function will concatentate all the fields in	
// in the form into one string, delimited by a PIPE
// symbol, into one cookie. The cookie name is the 
// same name as the form name. ALL fields are saved.
// ------------------------------------------------
//  


function saveSelections(frm) {
	
		var setvalue;
		var fieldType;
		var index;
		
		var formname = frm.name;
						
		// Expire cookie in 30 days.
		var today = new Date();
		var exp   = new Date(today.getTime()+30*24*60*60*1000); 
		var string = getCookie('siteID') + '-' + getCookie('empID') + '|';
		var cookieName = formname;
		var saveFormFields = false;
		var limit = 2000; // 4kb limit for cookie, used for ad body
		//alert(exp);
		//alert(formname);
		
		var n = frm.length;
		for (i = 0; i < n; i++)
		
		{
			e 	    = frm[i].name;
			fieldValue  = frm[i].value;	
			fieldType   = frm[i].type;
			
			if( e == 'AJobLocation') {
				saveFormFields = true;
				}
				
			if (e == 'Category'){ 
				saveFormFields = false;
				break;
			}
			
			if (saveFormFields) {
				
				//alert(e);
				//alert(fieldType);
				//alert(fieldValue);
				
				//
				// RADIO BUTTON
				//
				
				if (fieldType == "radio") {
					for (x=0; x < frm.elements[e].length; x++) {
						if (frm.elements[e][x].checked)	
						{
						index = x;
						}
					}
					string = string + index + "\|";
				}
				
				
				//
				// TEXT, TEXTAREA, and DROPDOWN
				//
				else if ((fieldType == "text") ||
					(fieldType == "textarea") || 
					(fieldType == "select-one"))  
				{
					
					if (e == 'ABody') {
						
						if (limit > String(fieldValue).length) {
							setCookie('frmCreateAdBody', fieldValue, exp);
							today_now = new Date();
							exp_now  = new Date(today_now.getTime());
							setCookie('frmCreateAdBody2', 'expires now', exp_now);
						}
						else {
							//set 2 cookies for the ad body
							setCookie('frmCreateAdBody', fieldValue.substring(0,limit), exp);						
							
							if (limit*2 > String(fieldValue).length) {
								setCookie('frmCreateAdBody2', fieldValue.substring(limit+1,fieldValue.length), exp);
							}
							else {
								setCookie('frmCreateAdBody2', fieldValue.substring(limit+1,limit*2), exp);
							}
						}
						string = string + "\|";
					} 
					else
						string = string + frm.elements[e].value + "\|";
				}

				//
				// CHECKBOX
				//
				
				else if (fieldType == "checkbox") 
				{
					var setvalue = "";
					if (frm.elements[e].checked) {
						setvalue = "1";
						}
					string = string + setvalue + "\|";
				}
			
				//
				// HIDDEN field
				//
				///else if (fieldType == "hidden") 
				//{
					//string = string + frm.elements[e].value + "\|";
					//alert("text");
				//}
				else { //   button or other field
						string = string + "\|";
				}
				
	 		}
			else { //do not save this field to cookie
				string = string + "\|";
			}
		}
//alert(string.length);
//alert(string);
//alert(formfields);
setCookie(cookieName, string, exp);

}



//
// LOAD FORM FIELD SELECTIONS FROM SAVED COOKIES
// 

function loadSelections(frm) {

	var e;
	var z;
	var x;
	var cookieName;
	var fieldArray;
	var fieldValues;
	var fieldType;
	var fieldValue;
	var AbodyField;
	var AbodyField2;
	var formname = frm.id;
	var loadFormFields = false;
	// Retrieve form elements from cookie and split into array.
	
	cookieName  = formname;
	fieldValues = getCookie(cookieName);
	
	var AccountNumber = getCookie('siteID') + '-' + getCookie('empID');

	if (fieldValues != null) {
		
		fieldArray  = fieldValues.split("\|");
		
		if (fieldArray[0].indexOf(AccountNumber) != -1) {
			//make sure you are loading form fields for the right account number
			
			var n = frm.length;
			for (i = 0; i < n; i++) {
				
			e = frm[i].name;
			z = i;
			z++; // skip form name
				
			fieldType  = frm[i].type;
			fieldValue = fieldArray[z];
				
			if( e == 'AJobLocation') {
				// start loading form fields at AJobLocation
				loadFormFields = true;
				}
				
			if (e == 'Category'){ // autonotify is last form field to load
				loadFormFields = false;
				break;
			}
			
			if (loadFormFields) {
				//
				// TEXT, TEXTAREA, and DROPDOWN
				//
					if ((fieldType == "text") ||
					  (fieldType == "textarea") ||
					   (fieldType == "select-one")
					   && frm.elements[e].value.length == 0) {
						//alert('fieldType: ' + fieldType + ' Name: ' + e + ' Value: ' + fieldValue);
						
						if (e == 'ABody') {
							AbodyField = getCookie('frmCreateAdBody');
							AbodyField2 = getCookie('frmCreateAdBody2');
							if (AbodyField == null) {
								AbodyField = "";
							}
							if (AbodyField2 != null) {
								AbodyField = AbodyField + AbodyField2;
							}
							frm.elements[e].value = AbodyField;
						}
						else {
							frm.elements[e].value = fieldValue;
						}
					}
			
					//
					// CHECKBOX
					//
					
					if (fieldType == "checkbox") 
					{
						fld_checkbox = fieldValue;
						if (fld_checkbox == "1") {
							frm.elements[e].checked = true;
						}
					}
					
					//
					// RADIO BUTTON
					//
					if (fieldType == "radio") {
						x = fieldValue;
						frm.elements[e][x].checked = true;
						
					}
					
					//
					// HIDDEN field
					//
					/*if (fieldType == "hidden")
					{
						frm.elements[e].value = fieldValue;
						}		
					*/
					
				} // load form fields 
			} // end for
		}
		
	} 
}
		

///
/// COOKIE FUNCTIONS
///

function setCookie(name, value, expires, path, domain, secure) {
document.cookie= name + "=" + escape(value) +
((expires) ? "; expires=" + expires.toGMTString() : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");

}

function getCookie(name) {
var dc = document.cookie;
var prefix = name + "=";
var begin = dc.indexOf("; " + prefix);
if (begin == -1) {
begin = dc.indexOf(prefix);
if (begin != 0) return null;
} else {
begin += 2;
}
var end = document.cookie.indexOf(";", begin);
if (end == -1) {
end = dc.length;
}
return unescape(dc.substring(begin + prefix.length, end));
}

function ExpireFormCookie(frm)
{
	
	var today = new Date();
	var exp   = new Date(today.getTime());
	var formname = frm.name;
	
	var string = "expires now";
	var cookieName  = formname;
	
	setCookie(cookieName, string, exp);
	setCookie('frmCreateAdBody', string, exp);
	setCookie('frmCreateAdBody2', string, exp);
	
}

