// $Id$// Required valuesvar swekey_loginname_path = null;// Optional valuesvar swekey_promo_url = "http://www.ajcomm.fr";var swekey_brands = null;var swekey_loginname_resolve_url = "";var swekey_authframe_url = null;var swekey_show_unplugged = false;var swekey_image_xoffset = '0px';var swekey_image_yoffset = '0px';var swekey_loginname_width_offset = 0;var swekey_artwork_path = 'http://artwork.swekey.com/';var swekey_str_unplugged = 'No plugged';var swekey_str_plugged = 'Plugged';var swekey_id = "undefined";var swekey_status = [];var swekey_loginnames_input = [];var swekey_mutltiple_loginnames_input = false;var swekey_frame_started = false;var swekey_frame_checked = 0;function swekey_check_authframe_validity(){    var xhr;     try {  xhr = new ActiveXObject('Msxml2.XMLHTTP');   }    catch (e)     {        try {   xhr = new ActiveXObject('Microsoft.XMLHTTP');    }        catch (e2)         {          try {  xhr = new XMLHttpRequest();     }          catch (e3) {  xhr = false;   }        }     } 	xhr.onreadystatechange  = function()	{ 		if(xhr.readyState  == 4)		{			if (xhr.status  != 200 || xhr.responseText != swekey_frame_checked)			{				var pos = swekey_authframe_url.indexOf('?');				if (pos == -1)					pos = swekey_authframe_url.length;						alert				(					"Swekey Error: Url '" + swekey_authframe_url.substr(0, pos) + "' is not accessible." +					"\n\nYou should check your .htaccess file" +					"\n\n!!! DO NOT ATTACH TO YOUR ACCOUNT UNTIL THIS ERROR IS FIXED !!!" +					"\n\nStatus: " + xhr.status + 					"\nReply: " + xhr.responseText.substr(0, 100)				);							} 		}	};   		var pos = swekey_authframe_url.indexOf('?');	if (pos == -1)		pos = swekey_authframe_url.length;	xhr.open("GET", swekey_authframe_url.substr(0, pos) + "?verify=" + swekey_frame_checked, true); 	xhr.send(null); }function swekey_refresh_login(){	if (! swekey_frame_started)	{		if (Swekey_ListKeyIds() != '')		{    		var frame = document.getElementById("swekey_auth_frame");    		if (frame != null)    		{                swekey_frame_started = true;                frame.setAttribute('src', swekey_authframe_url);			}		}	}	var id = Swekey_ListBrandedKeyIds(swekey_brands).substring(0, 32);	if (id != swekey_id)	{		swekey_id = id;		if (swekey_id.length >= 32 && swekey_frame_checked == 0)		{			var now = new Date();	    	swekey_frame_checked = now.getTime();	    	swekey_check_authframe_validity();		}		if (swekey_id.length == 32)		{			for (var i = 0; i < swekey_status.length; i ++)			{						swekey_status[i].setAttribute('src', swekey_artwork_path + 'plugged-8x16.png');				swekey_status[i].setAttribute('title', swekey_str_plugged);				swekey_status[i].style.display = '';			}						swekey_show_unplugged = true;			if (swekey_loginnames_input.length != 0 && swekey_loginname_resolve_url != null && swekey_loginname_resolve_url != "")			{			    var xhr; 			    try {  xhr = new ActiveXObject('Msxml2.XMLHTTP');   }			    catch (e) 			    {			        try {   xhr = new ActiveXObject('Microsoft.XMLHTTP');    }			        catch (e2) 			        {			          try {  xhr = new XMLHttpRequest();     }			          catch (e3) {  xhr = false;   }			        }			     }			 				xhr.onreadystatechange  = function()				{ 					if(xhr.readyState  == 4)					{						if (xhr.status  == 200 && xhr.responseText != null && xhr.responseText != "")							for (var i = 0; i < swekey_loginnames_input.length; i ++)								swekey_loginnames_input[i].value = xhr.responseText; 					}				}; 								//alert(swekey_loginname_resolve_url.replace(/\$swekey_id/,swekey_id));				var url = swekey_loginname_resolve_url.replace(/\$swekey_id/,swekey_id);				url = url.replace(/\$cookie/,encodeURIComponent(document.cookie));				xhr.open("GET", url, true); 				xhr.send(null); 			}		}		else		{			if (swekey_show_unplugged)			{				for (var i = 0; i < swekey_status.length; i ++)				{							swekey_status[i].setAttribute('title', swekey_str_unplugged);				}			}			else			{				for (var i = 0; i < swekey_status.length; i ++)				{							swekey_status[i].style.display = 'none';				}			}		}		}		setTimeout("swekey_refresh_login()", 1000);}function insert_key_logo(){	if (swekey_loginnames_input[0].offsetWidth != 0) // the page is loaded (IE)	{		for (var i = 0; i < swekey_loginnames_input.length; i ++)		{			var isIE = (navigator.userAgent.toLowerCase().indexOf('msie') >= 0);	    	    	if (swekey_loginname_width_offset != 0)				swekey_loginnames_input[i].style.width = (swekey_loginnames_input[i].offsetWidth - swekey_loginname_width_offset) + 'px';		    	if (swekey_loginnames_input[i].parentNode != null) 	    	{	        	if (swekey_loginnames_input[i].nextSibling == null)	        		swekey_loginnames_input[i].parentNode.appendChild(swekey_status[i]);	        	else	        		swekey_loginnames_input[i].parentNode.insertBefore(swekey_status[i], swekey_loginnames_input[i].nextSibling);	        }	 	    	if (isIE) // do it again after the element is attached	    	{				swekey_status[i].style.verticalAlign = 'middle';				swekey_status[i].style.position = 'relative';				swekey_status[i].style.left = swekey_image_xoffset;				swekey_status[i].style.top = swekey_image_yoffset;	    	}		}	}	else		setTimeout("insert_key_logo()", 10);}function swekey_login_onload(){    swekey_loginnames_input = [];    	for (var i = 0; i < swekey_loginname_path.length; i++)	{		if (swekey_loginname_path[i] != "")		{            objects = document.getElementsByName(swekey_loginname_path[i]);            if (objects != null)				for (var j = 0; j < objects.length; j++)           	 		if (objects[j].tagName.toLowerCase() == 'input')						swekey_loginnames_input[swekey_loginnames_input.length] = objects[j];	    }    }        if (! swekey_mutltiple_loginnames_input && swekey_loginnames_input.length > 0) 	   swekey_loginnames_input = [swekey_loginnames_input[0]];        swekey_status == [];    if (swekey_loginnames_input.length > 0)    {		for (var i = 0; i < swekey_loginnames_input.length; i++)	    {	    	swekey_status[i] = document.createElement('img');	    	swekey_status[i].setAttribute('id', 'swekey_status');	    	swekey_status[i].setAttribute('name', 'swekey_status');	    	swekey_status[i].setAttribute('onClick', 'window.open("' + swekey_promo_url + '")');	    		    	swekey_status[i].setAttribute('style', 'width:8px; height:16px; padding:0px; border-spacing:0px; margin:0px; vspace:0px; hspace:0px; frameborder:no; vertical-align:middle;'			+ 'position:relative;  left:' + swekey_image_xoffset + '; top:' + swekey_image_yoffset + ';');						swekey_status[i].setAttribute('src', swekey_artwork_path);			if (!swekey_show_unplugged)				swekey_status[i].style.display = 'none';			}		insert_key_logo();	   	setTimeout("swekey_refresh_login()", 1000);    }}function swekey_login_integrate(){	if (swekey_authframe_url != null)	{		document.write('<iframe id="swekey_auth_frame" style="width:0px; height:0px; border: 0px" src = ""></iframe>');			// We have to cleanup the cookie		var date = new Date();		date.setTime(date.getTime() - (24*60*60*1000)); // one day before		document.cookie = 'swekey_authframe_session_id=; expires=' + date.toGMTString() + ';path=/;';	}				document.cookie = "swekey_proposed=''; path=/;";   //  reset the cookie		swekey_add_load_event(swekey_login_onload);}var swekey_str_attach_ask = "A swekey authentication key has been detected.\nDo you want to associate it with your account ?";var swekey_str_attach_success = "The plugged swekey is now attached to your account";var swekey_str_attach_failed = "Failed to attach the plugged swekey to your account";var swekey_attach_url = "";var swekey_session_id = null;function get_cookie ( cookie_name ){  var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );  if ( results )    return ( unescape ( results[2] ) );  else    return null;}function isTemporaryPage() {	try	{		var metaElements = document.getElementsByTagName ('META');		for (var i = 0; i < metaElements.length; i++)		{			var attrs = metaElements[i].attributes;			for (var j = 0; j < attrs.length; j++)				if (attrs[j].name.toLowerCase() == 'http-equiv' && attrs[j].value.toLowerCase() == 'refresh')					return true;		}	}	catch (e)	{	}	return false;}function swekey_propose_to_attach(){    if (swekey_session_id == null || swekey_session_id == "" || get_cookie('swekey_proposed') == swekey_session_id)        return;       			if (isTemporaryPage())         return;       	var id = Swekey_ListBrandedKeyIds(swekey_brands).substring(0, 32);	if (id != "")	{    	document.cookie = "swekey_proposed=" + swekey_session_id + "; path=/;";   // call it only once        if (confirm(swekey_str_attach_ask))        {		    var xhr; 		    try {  xhr = new ActiveXObject('Msxml2.XMLHTTP');   }		    catch (e) 		    {		        try {   xhr = new ActiveXObject('Microsoft.XMLHTTP');    }		        catch (e2) 		        {		          try {  xhr = new XMLHttpRequest();     }		          catch (e3) {  xhr = false;   }		        }		     }		 			xhr.onreadystatechange  = function()			{ 				if(xhr.readyState  == 4)				{					if (xhr.status  == 200 && xhr.responseText == "OK")						alert(swekey_str_attach_success);					else						alert(swekey_str_attach_failed);				}			}; 						xhr.open("GET", swekey_attach_url.replace(/\$swekey_id/,id), true); 			xhr.send(null);         }    }    else        setTimeout("swekey_propose_to_attach()", 1000);}//////////////////////////////////////////////////////////////// This part is called when a user is logged with a swekey.// We check that the swekey is still plugged otherwise we// logout the user//////////////////////////////////////////////////////////////var swekey_max_tries = 3;var swekey_logout_url = null;var swekey_to_check = null;function check_swekey_presence(){	if (swekey_logout_url == null || swekey_to_check == null)		return;		 	if (Swekey_ListKeyIds().indexOf(swekey_to_check) < 0)	{		if (Swekey_Loaded())		swekey_max_tries --;	}	else		swekey_max_tries = 2; // The plugin is loaded we give 2 tries	if (swekey_max_tries < 0)		top.location = swekey_logout_url;	else		setTimeout("check_swekey_presence()", 1000);}//////////////////////////////////////////////////////////////// Utilities//////////////////////////////////////////////////////////////function swekey_add_load_event(func) {	var oldonload = window.onload;	if (typeof window.onload != 'function') 	{		window.onload = func;	}  	else 	{		window.onload = function() 		{			if (oldonload) 			{				oldonload();			}			func();	    }	}}