function writeCookies(ssl) {

	var seconds = 60;

	var fields = new Array("username", "firstname", "lastname", "email", "userAge",
			"userPesel", "userStreet", "userStreetNumber",
			"userAdditionalStreetNumber", "userCity", "userPostCode",
			"userDistrict", "userSubDistrict", "userPhone", "userMobilePhone",
			"occupationStatus", "userEducation", "companyFullName",
			"companyNip", "companyStreet", "companyStreetNumber",
			"companyAdditionalStreetNumber", "companyCity", "companyPostCode",
			"companyDistrict", "companyPhone", "companyEmail");

	var checkboxes = new Array("userCityId", "sex", "companySize",
			"companyCityId");

	var switchables = new Array("userStreet", "userAdditionalStreetNumber",
			"userPhone", "userMobilePhone", "companyStreet",
			"companyAdditionalStreetNumber", "companyPhone", "companyEmail");
	var name = null;
	/* --------------------------------------------------------------------------- */
	var fieldCookie = {};
	for ( var n in fields) {
		name = fields[n];
		fieldCookie[name] = $("#" + name).val();
	}
	var JSONfieldCookie = JSON.stringify(fieldCookie).replace(/"/g, "!#"); // strin json / g-global
	createCookie("fields", JSONfieldCookie, seconds);
	/* --------------------------------------------------------------------------- */
	var checkboxesCookie = {};
	for ( var n in checkboxes) {
		name = checkboxes[n];
		checkboxesCookie[name] = $("input[@name='" + name + "']:checked").val();
	}
	var JSONcheckboxesCookie = JSON.stringify(checkboxesCookie).replace(/"/g,"!#"); // strin json
	createCookie("checkboxes", JSONcheckboxesCookie, seconds);
	/* --------------------------------------------------------------------------- */
	var switchablesCookie = {};
	for ( var n in switchables) {
		name = switchables[n];
		switchablesCookie[name] = $("#" + name).is(":disabled");
	}
	var JSONswitchablesCookie = JSON.stringify(switchablesCookie).replace(
			/"/g, "!#"); // strin json
	createCookie("switchables", JSONswitchablesCookie, seconds);

	createCookie("sslEnabled", ssl, 2592000);
	createCookie("cookiesWritten", "yes", seconds);
}

function loadCookies() {

	if (readCookie("cookiesWritten") != "yes")
		return;

	var fields = new Array("username","firstname", "lastname", "email", "userAge",
			"userPesel", "userStreet", "userStreetNumber",
			"userAdditionalStreetNumber", "userCity", "userPostCode",
			"userDistrict", "userPhone", "userMobilePhone",
			"userEducation", "companyFullName",
			"companyNip", "companyStreet", "companyStreetNumber",
			"companyAdditionalStreetNumber", "companyCity", "companyPostCode",
			"companyDistrict", "companyPhone", "companyEmail");
	
	var fields2 = new Array("userSubDistrict", "occupationStatus");

	var checkboxes = new Array("userCityId", "sex", "companySize",
			"companyCityId");

	var switchables = new Array("userStreet", "userAdditionalStreetNumber",
			"userPhone", "userMobilePhone", "companyStreet",
			"companyAdditionalStreetNumber", "companyPhone", "companyEmail");
	/* --------------------------------------------------------------------------- */
	var fieldsCookie = readCookie("fields").replace(/!#/g,'"');

	var fieldValues = eval( "(" + fieldsCookie + ")" );
	for ( var n in fields ) {
		name = fields[n];
		$("#"+name).val( fieldValues[name] );
	}
	/* --------------------------------------------------------------------------- */
	var checkboxesCookie = readCookie("checkboxes").replace(/!#/g,'"');
	var checkboxesValues = eval( "(" + checkboxesCookie + ")" );
	for ( var n in checkboxes ) {
		name = checkboxes[n];
		$("#" + name + "-" + checkboxesValues[name]).attr("checked", "checked");
	}
	/* --------------------------------------------------------------------------- */
	updateAjaxFields(fieldValues); // pola updatowane po wczytaniu ajaxem
	/* --------------------------------------------------------------------------- */
	
	// @todo do funkcji jakiejś

	if($("input[@name='companySize']:checked").val() != null)
	{
		if($("input[@name='companySize']:checked").val() != 4)
		{
			showCompanyFields(true);
			$("#conditions").show();
			$("#conditions2").hide();
			
		}
		else
		{
			showCompanyFields(false);
			$("#conditions").hide();
			$("#conditions2").show();
			
		}
	}
	/* --------------------------------------------------------------------------- */
	
	var switchablesCookie = readCookie("switchables").replace(/!#/g,'"');
	
	var switchablesValues = eval( "(" + switchablesCookie + ")" );

	for ( var n in switchables ) {
		name = switchables[n];
		if(switchablesValues[name])
			switchField(false,name);
		else	
			switchField(true,name);
	}
	
}

function createCookie(name, value, seconds) {
	if (seconds) {
		var date = new Date();
		date.setTime(date.getTime() + (seconds * 1000));
		var expires = "; expires=" + date.toGMTString();
	} else
		var expires = "";
	var ck = name + "=" + value + expires;
	document.cookie = ck;
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for ( var i = 0; i < ca.length; i++) {
		var c = ca[i];
		while (c.charAt(0) == ' ')
			c = c.substring(1, c.length);
		if (c.indexOf(nameEQ) == 0)
			return c.substring(nameEQ.length, c.length);
	}
	return null;
}

function updateAjaxFields(fieldValues) {
	
	if($("#userSubDistrict").length == 0)
		return;
	
	// powiaty
	$.getJSON("/platform/enrolment/update-sub-districts",{district: $("#userDistrict").val()}, function(j){
	      var options = '';
	      for (var i = 0; i < j.length; i++) {
	        options += '<option value="' + j[i].id + '">' + j[i].sub_district_name+ '</option>';
	      }
	      $("#userSubDistrict").html(options);
	      $("#userSubDistrict").val(fieldValues["userSubDistrict"]);
	    });
	// status na rynku pracy
	$.getJSON("/platform/enrolment/update-occupations",{occupations: $("input[@name='companySize']:checked").val()}, function(j){
		  var options = '';
	      for (var i = 0; i < j.length; i++) {
	        options += '<option value="' + j[i].occupationId + '">' + j[i].occupationStatus+ '</option>';
	      }
	      $("#occupationStatus").html(options);
	      $("#occupationStatus").val(fieldValues["occupationStatus"]);
	    });
}


$("document").ready(function() {
	loadCookies();
});
