function Set_Cookie( name, value, expires, path, domain, secure )
{
    // set time, it's in milliseconds
    var today = new Date();
    today.setTime( today.getTime() );

    /*
if the expires variable is set, make the correct
expires time, the current script below will set
it for x number of days, to make it for hours,
delete * 24, for minutes, delete * 60 * 24
    */
    if ( expires )
	{
	    expires = expires * 1000 * 60 * 60 * 24;
	}
    var expires_date = new Date( today.getTime() + (expires) );

    document.cookie = name + "=" +escape( value ) +
	( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) +
	( ( path ) ? ";path=" + path : "" ) +
	( ( domain ) ? ";domain=" + domain : "" ) +
	( ( secure ) ? ";secure" : "" );
}


// this fixes an issue with the old method, ambiguous values
// with this test document.cookie.indexOf( name + "=" );
function Get_Cookie( check_name ) {
    // first we'll split this cookie up into name/value pairs
    // note: document.cookie only returns name=value, not the other components
    var a_all_cookies = document.cookie.split( ';' );
    var a_temp_cookie = '';
    var cookie_name = '';
    var cookie_value = '';
    var b_cookie_found = false; // set boolean t/f default f

    for ( i = 0; i < a_all_cookies.length; i++ )
	{
	    // now we'll split apart each name=value pair
	    a_temp_cookie = a_all_cookies[i].split( '=' );


	    // and trim left/right whitespace while we're at it
	    cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');

	    // if the extracted name matches passed check_name
	    if ( cookie_name == check_name )
		{
		    b_cookie_found = true;
		    // we need to handle case where cookie has no value but exists (no = sign, that is):
		    if ( a_temp_cookie.length > 1 )
			{
			    cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
			}
		    // note that in cases where cookie is initialized but no value, null is returned
		    return cookie_value;
		    break;
		}
	    a_temp_cookie = null;
	    cookie_name = '';
	}
    if ( !b_cookie_found )
	{
	    return null;
	}
}

// this deletes the cookie when called
function Delete_Cookie( name, path, domain ) {
    if ( Get_Cookie( name ) ) document.cookie = name + "=" +
				  ( ( path ) ? ";path=" + path : "") +
				  ( ( domain ) ? ";domain=" + domain : "" ) +
				  ";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}


function logout() {
  Delete_Cookie('info');
  resetform();
}

function resetform() {
  $("#logindiv").html(formhtml);
  $("#getgraph").hide();

}

function follow(id) {
    url="http://localhost/gids/getcookie.php?auth="+escape(pass)+"&id="+id+"&mode=follow";
    alert(url);

}

function login() {
          url="http://localhost/gids/getcookie.php?user="+$("#username").val()+"&password="+$("#pass").val();
          $("#formerr").html('logging in..');
          $.getJSON(url,
            function (data, textStatus) {
              if(data.message == "ok") {
                Set_Cookie('info',data.cookie);
                username=$("#username").val();
                $("#formerr").html("");
                oldformhtml=$("#loginform").html();
                $("#loginform").html("User "+username+" logged in. <a href=javascript:logout()>Logout</a>");
                $("#getgraph").show();
              } else {
                $("#formerr").html("Could not log you in. Password problem?");
              }
            }
          );
        };



      var formhtml='<form id="loginform"><input type=text size="12" name="user" id="username" value="michielb"><br/><input size="12" type=password name="pass" id="pass" value="lollie4"><br/><div id="formerr"></div><input type=button id="submitbutton" onClick="login()" value="Login"></form>';

     $(document).ready(function() {
         pass=Get_Cookie('info');
         if(pass) {
             url="http://localhost/gids/getcookie.php?auth="+escape(pass)+"&mode=getuser";
             $.getJSON(url,
               function (data, textStatus) {
                  $("#logindiv").html("User "+data.user+" logged in. <a href=javascript:logout()>Logout</a>");
                }
             );
             $("#getgraph").show();
         } else {
            resetform();
         }

        $("#gettimeline").click(function() {
         pass=Get_Cookie('info');
         url="http://localhost/gids/getcookie.php?auth="+escape(pass)+"&mode=timeline";
         $.getJSON(url,
           function (data, textStatus) {
             $("#outdiv").html(data.message);
           }
         );
         return 1;
        });


        $("#getgraph").click(function() {
          pass=Get_Cookie('info');
          url="http://localhost/gids/getcookie.php?auth="+escape(pass)+"&mode=graph";
          $.getJSON(url,
            function (data, textStatus) {
              for (i=0;i<data.length;i++) {
                 $("#"+data[i]).html("following");
              }
            }
	  );
	  $("#tweeps").find(".action").each(function(i) {
		  $(this).html( "<a href=\"javascript:follow(\'"+this.id+"\')\">follow "+this.id+"</a>" );
          });
        });
      });
