var errcolor = '#990000';

var afterCancel = function() {
	// re-enable flash movie if we're on the home page
	var obj = dojo.byId('flashmovie');
				
	if (obj) {
		obj.style.visibility = 'visible';
	}
}

dojo.addOnLoad(afterCancel);

dojo.require("dijit.Dialog");


function submitTopForm(form) {	
	var fieldnames = ["gender", "heightft", "heightin", "weight", "name", "email"];
	
	// set a cookie, check for multiple submissions
	var cookval = parseInt(get_cookie('dietform'));
	
	if (isNaN(cookval)) {
		cookval = 0;
	}
	
	if (cookval >= 11111111118) {
		alert("It appears you have submitted this form at least eight times. In order to prevent bots from spamming our form you must wait an hour before submitting again.");
		return false;
	}
	
	set_cookie('dietform', cookval+1, 0.04, '/');
	
	// disable form fields, set button text	
	
	// fade button
	dojo.animateProperty(
	{
		node: 'formbutton1', duration: 200,
		properties: {
			opacity: 0.5
		}
	}).play();
	
	var oldvalue = dojo.byId('formbutton1').value;
	dojo.byId('formbutton1').disabled = true;
	dojo.byId('formbutton1').value = 'PLEASE WAIT...';
	
	// do ajax request
	dojo.xhrPost({
		url: "includes/dietform.php",
		load: function(response, ioArgs) {
			if (ioArgs.xhr.status == '200') {
				var status = response[0]['status'];
				var rtext  = response[0]['responsetext'];
				var errfields = response[0]['errfields'];
			
				dojo.byId('msgboxtext').innerHTML = rtext; //dump(ioArgs);
				
				// disable flash movie if we're on the home page
				var obj = dojo.byId('flashmovie');
				
				if (obj) {
					obj.style.visibility = 'hidden';
				}

				//console.debug(dojo.connect("onCancel", "afterCancel"));
				// display results from ajax request
				dijit.byId('msgbox').show();
				
				// clear form if request was successful
				// also set labels back to normal in case of a previous submission error
				if (status == 'OK') {
					for (ind in fieldnames) {
						var fieldname = fieldnames[ind];
						
						if (fieldname == 'gender') {
							form[fieldname][0].checked = false;
							form[fieldname][1].checked = false;
						} else {
							form[fieldname].value = '';
						}
						
						var obj = dojo.byId(fieldname+'-label');
						if (obj) {
							obj.style.color = '#000000';
						}
					}
					
					var obj = dojo.byId("height-label");
					if (obj) {
						obj.style.color = '#000000';
					}
				} else {
					for (ind in errfields) {
						var fieldname = errfields[ind];
						
						var obj = dojo.byId(fieldname+'-label');
						
						if (obj) {
							obj.style.color = errcolor;
						}
						
						if (fieldname == 'heightft' || fieldname == 'heightin') {
							dojo.byId("height-label").style.color = errcolor;
						}
					}
				}
			}
			
			// fade button in
			dojo.animateProperty(
			{
				node: 'formbutton1', duration: 200,
				properties: {
					opacity: 1
				}
			}).play();
			
			dojo.byId('formbutton1').disabled = false;
			dojo.byId('formbutton1').value = oldvalue;
						
			return response;
		},
		
		error: function(response, ioArgs) {
			alert("An error occurred, with response: " + response);
			
			// fade button in
			dojo.animateProperty(
			{
				node: 'formbutton1', duration: 200,
				properties: {
					opacity: 1
				}
			}).play();
			
			dojo.byId('formbutton1').disabled = false;
			dojo.byId('formbutton1').value = oldvalue;
			
			return response;
		},
		
		timeout: 60000,
		handleAs: "json",
		form: "dietform"
	});
	
	return false; // we're not redirecting the user to a results page
}

var fadeNav = function(ind, state) {
		var nodename = 'navitem'+ind;
		var startbgcolor  = (state == 'over') ? '#F3D3B5' : '#6D0319';
		var endbgcolor    = (state == 'over') ? '#6D0319' : '#F3D3B5';
		var starttxtcolor = (state == 'over') ? '#000000' : '#ffffff';
		var endtxtcolor   = (state == 'over') ? '#ffffff' : '#000000';
		
		var anim = dojo.animateProperty(
		{
			node: nodename, duration: 400,
			properties: {
				color:         { start: starttxtcolor, end: endtxtcolor },
				backgroundColor:   { start: startbgcolor, end: endbgcolor }
			}
		});
		
		anim.play();
};

dojo.addOnLoad(fadeNav);

function get_cookie(cookie_name) {
  var results = document.cookie.match( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );

  if (results)
    return (unescape(results[2]));
  else
    return null;
}

function set_cookie(name, value, days, path, domain, secure) {
  var cookie_string = name + "=" + escape(value);

  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(Math.round(days*24*60*60*1000)));
	var expires = "; expires="+date.toGMTString();
    cookie_string += expires;
  }

  if (path)
        cookie_string += "; path=" + escape(path);

  if (domain)
        cookie_string += "; domain=" + escape(domain);
  
  if (secure)
        cookie_string += "; secure";
  
  document.cookie = cookie_string;
}

function delete_cookie(cookie_name) {
  var cookie_date = new Date ( );  // current date & time
  cookie_date.setTime ( cookie_date.getTime() - 1 );
  document.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString();
}


function dump(arr,level) {
var dumped_text = "";
if(!level) level = 0;

//The padding given at the beginning of the line.
var level_padding = "";
for(var j=0;j<level+1;j++) level_padding += "    ";

if(typeof(arr) == 'object') { //Array/Hashes/Objects
 for(var item in arr) {
  var value = arr[item];
 
  if(typeof(value) == 'object') { //If it is an array,
   dumped_text += level_padding + "'" + item + "' ...\n";
   dumped_text += dump(value,level+1);
  } else {
   dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
  }
 }
} else { //Stings/Chars/Numbers etc.
 dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
}
return dumped_text;
} 

