/* Simple OpenID Connect Plugin Adapted from http://code.google.com/p/openid-selector/ The original code is licenced under the New BSD License. */ var providers = { google: { name: 'Google', } }; var openid = { cookie_expires: 6*30, // 6 months. cookie_name: 'openid_provider', cookie_path: '/', img_path: 'openid_connect/images/', input_id: "openid_provider", init: function(input_id) { var openid_btns = $('#openid_btns'); this.input_id = input_id; $('#openid_choice').show(); $('#openid_input_area').empty(); // add box for each provider for (id in providers) { openid_btns.append(this.getBoxHTML(id, providers[id])); } $('#openid_form').submit(this.submit); var box_id = this.readCookie(); if (box_id) { this.highlight(box_id); var provider = providers[box_id]; } }, getBoxHTML: function(box_id, provider) { var image_filename = box_id + ".gif"; var box_name = box_id; if (provider['image_filename']) { image_filename = provider['image_filename']; } if (provider['name']) { box_name = provider['name']; } return ''; }, /* Provider image click */ signin: function(box_id, onload) { this.highlight(box_id); this.setCookie(box_id); this.setOpenIdProvider(box_id); if (!onload) { $('#openid_form').submit(); } }, setOpenIdProvider: function (provider) { var hidden = $('#'+this.input_id); if (hidden.length > 0) { hidden.value = provider; } else { $('#openid_form').append(''); } }, highlight: function (box_id) { // remove previous highlight. var highlight = $('#openid_highlight'); if (highlight) { highlight.replaceWith($('#openid_highlight a')[0]); } // add new highlight. $('.'+box_id).wrap('
'); }, setCookie: function (value) { var date = new Date(); date.setTime(date.getTime()+(this.cookie_expires*24*60*60*1000)); var expires = "; expires="+date.toGMTString(); document.cookie = this.cookie_name+"="+value+expires+"; path=" + this.cookie_path; }, readCookie: function () { var nameEQ = this.cookie_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; } };