// varible declaration to monitor the status var $LOGGED_OUT = '0'; var $LOGGED_IN = '1'; var $user_state = $LOGGED_OUT; var $extRender = ''; // create the logout bar function ssoGenerateLogoutBar($username) { $r = '
Logged in as ' + $username + '
'; $r += '
|
'; $r += '
Profile
'; $r += '
|
'; $r += '
Sign out
'; document.getElementById("loginInfo").innerHTML = $r; } // create the login bar function ssoGenerateLoginBar() { $r = '
Sign in or '; $r += 'Register
'; document.getElementById("loginInfo").innerHTML = $r; } // create the navigation bar function ssoGenerateNavigationBar($username) { $r = ''; $r += 'Main Site '; $r += 'Blog '; $r += 'Playground '; $r += 'Forum '; $r += 'Labs '; $r += 'Store '; document.getElementById("ssoNavBar").innerHTML = $r; if (cookieExists('arduino_sso_authorized')) { $user_state = $LOGGED_IN; ssoGenerateLogoutBar($username); } else { $user_state = $LOGGED_OUT; ssoGenerateLoginBar(); } /* load the first timer, to check whether the user is logged in */ window.setTimeout("stateMachine()",1000); /* setup a clock to check periodically whether the user is there */ window.setInterval("stateMachine()",5000); } // create the cookie upon login function setCookie(c_name,value,expiredays) { var exdate=new Date(); exdate.setDate(exdate.getDate()+expiredays); document.cookie=c_name+ "=" +escape(value)+ ((expiredays==null) ? "" : ";expires="+exdate.toUTCString()); } // get the value of the cookie function getCookie(c_name) { if (document.cookie.length>0) { c_start=document.cookie.indexOf(c_name + "="); if (c_start!=-1) { c_start=c_start + c_name.length+1; c_end=document.cookie.indexOf(";",c_start); if (c_end==-1) c_end=document.cookie.length; return unescape(document.cookie.substring(c_start,c_end)); } } return ""; } // erase the cookie upon logout function deleteCookie(c_name) { document.cookie = c_name + '=; expires=Thu, 01-Jan-70 00:00:01 GMT;'; } // check the security cookie and the name cookie to decide for a reset function cookieExists(c_name) { if (document.cookie.length>0) { c_start=document.cookie.indexOf(c_name + "="); if (c_start!=-1) { c_start=c_start + c_name.length+1; c_end=document.cookie.indexOf(";",c_start); if (c_end==-1) c_end=document.cookie.length; return 1; } } return 0; } // state machine to decide what to do function stateMachine() { switch($user_state) { case $LOGGED_OUT: if (cookieExists('arduino_sso_authorized')) { window.location.reload(); } break; case $LOGGED_IN: if (!cookieExists('arduino_sso_authorized')) { $user_state = $LOGGED_OUT; ssoGenerateLoginBar(); } break; } }