var conf = 
        {
            APIKey: '2_8Z3m-kvC4yIrnZN-ahdZAs5TsC_ZUCKA9L30fceF8FIDpqrMENnYCg8VPSCKJyh-',
            enabledProviders: 'facebook, myspace, twitter, google, aol, yahoo, liveid',
            signIDs: 'true',
            UIConfig: "<config><body><texts color=\"#00006D\"></texts><background background-color=\"transparent\" frame-color=\"transparent\"></background></body></config>"
        };
	
	// onLogin Event handler
        function onLoginHandler(eventObj) {	
            //alert(eventObj.context.str + ' ' + eventObj.eventName + ' to ' + eventObj.provider 
			//	+ '!\n' + eventObj.provider + ' user ID: ' +  eventObj.user.identities[eventObj.provider].providerUID);
            // verify the signature ...
            verifyTheSignature(eventObj.UID, eventObj.timestamp, eventObj.signature);

            // Check whether the user is new by searching if eventObj.UID exists in your database
            var newUser = true; // lets assume the user is new
            
            if (newUser) {
                // 1. Register user 
                // 2. Store new user in DB
                // 3. link site account to social network identity
                //   3.1 first construct the linkAccounts parameters
                var dateStr = Math.round(new Date().getTime()/1000.0); // Current time in Unix format
																	//(i.e. the number of seconds since Jan. 1st 1970)
				
                var siteUID = 'uTtCGqDTEtcZMGL08w'; // siteUID should be taken from the new user record
                                                   // you have stored in your DB in the previous step
                var yourSig = createSignature(siteUID, dateStr);

                var params = {
                    siteUID: siteUID, 
                    timestamp:dateStr,
                    signature:yourSig
                };
                
                //   3.1 call linkAccounts method:
                gigya.services.socialize.linkAccounts(conf, params);
            }
			
			$("#responseDiv").html("<p style='color: #b2cf42; font-weight:bold'>Authentication successful via " + eventObj.provider + "</p>");
			displayInfo(eventObj);
			
			$("#form-elements").fadeOut("fast");
			$("#loggedIn").fadeIn("fast");
			$("#loggedIn .p2").html("UID: " + eventObj.UID + 
			                        "<br />Provider: " + eventObj.user.loginProvider + " (<a href='" + eventObj.user.profileURL + "'>View Profile</a>)" +
			                        "<br />Email: " + eventObj.user.email +
			                        "<br />Nickname: " + eventObj.user.nickname +
			                        "<br />Gender: " + eventObj.user.gender +
			                        "<br />DOB: " + eventObj.user.birthMonth + "/" + eventObj.user.birthDay + "/" + eventObj.user.birthYear +
			                        "<br />Location: " + eventObj.user.city + ", " + eventObj.user.state + " " + eventObj.user.zip +
								"</p>");

			var sPath = window.location.pathname;
			var sPage = sPath.substring(sPath.lastIndexOf('/') + 1);
		
			window.location = "/Signup/GigyaLogin.aspx?UID=" + eventObj.UID + "&Provider=" + eventObj.user.loginProvider + "&Email=" + eventObj.user.email +
			                   "&Nickname=" + eventObj.user.nickname + "&Gender=" + eventObj.user.gender +
			                   "&DOB=" + eventObj.user.birthMonth + "/" + eventObj.user.birthDay + "/" + eventObj.user.birthYear +
			                   "&Location=" + eventObj.user.city + "," + eventObj.user.state + "," + eventObj.user.zip + "&PrevPage=" + sPage;

        }

        // Note: the actual signature calculation implementation should be on server side
        function createSignature(UID, timestamp) {
            return '';
        }
		
        // Note: the actual signature calculation implementation should be on server side
        function verifyTheSignature(UID, timestamp, signature) {
           // alert('Your UID: ' + UID + '\n timestamp: ' + timestamp + '\n signature: ' + signature);
        }
        
        // Logout from Gigya platform. This method is activated when "Logout" button is clicked 
		function logoutFromGS() {
		    gigya.services.socialize.disconnect(conf,{callback:printResponse});
            gigya.services.socialize.logout(conf, {/*no required params*/}); // logout from Gigya platform
            
        }
		
		// onLogout Event handler
        function onLogoutHandler(eventObj) {
			$("#responseDiv").html("<p style='color: #b2cf42; font-weight:bold'>You have been logged out.</p>");
			$("#userInfo").fadeOut("fast");
			
			$("#loggedIn").fadeOut("fast");
			$("#form-elements").fadeIn("fast");
		}
		
		function displayInfo(eventObj) {
			$("#userInfo").fadeIn("fast").html("<img src='" + eventObj.user.photoURL + "' border=0><p class='userinfo'>" 
								+ eventObj.user.nickname + "</p> <p>Welcome, " + eventObj.user.firstName + 
								"<a href='#' onClick='javascript: logoutFromGS()'><img src='images/logout.gif' border=0 /></a>");
                
                
		}
		
		function printResponse(response) {  
            if ( response.errorCode == 0 ) {             
                var user = response.user;
                var msg = 'User '+ user.nickname + ' has been disconnected';
            //    alert(msg);
            }
            else {
                alert('Error :' + response.errorMessage);
            }  
        }