// general configuration
	var conf = {
			"APIKey":"2_oe5H76y1jFaZ-2qfnLkxNA==",
			"enabledProviders":"facebook,myspace,twitter,google,yahoo,aol"
		}
	function onLoad() {
            gigya.services.socialize.getUserInfo(conf,{callback:renderUI});		// get user info
            gigya.services.socialize.addEventHandlers(conf, { onConnect:renderUI, onDisconnect:renderUI });		// register for connect status changes  
        }
        
// connect selector configuration        
	var connect_params = {
			"height":70,
			"width":290,
			"containerID":"gy_connect",
			"UIConfig":"<config><body><texts><links color=\"#F4F4F4\"></links></texts><controls><snbuttons buttonsize=\"50\"></snbuttons></controls><background background-color=\"Transparent\" frame-color=\"Transparent\"></background></body></config>"
		}

// Check user login state and get user info
	var user = null;
	function renderUI(res) {
            if (res.user!=null && res.user.isConnected) {            
                document.getElementById("gy_profile").style.display		= "block";
				document.getElementById("gy_status").style.display		= "block";
				document.getElementById("gy_profile_name").innerHTML	= res.user.nickname;
				document.getElementById("gy_profile_url").href 			= res.user.profileURL;		
                document.getElementById("gy_photo").src 				= res.user.thumbnailURL;
                document.getElementById("gy_friends").style.display		= "block";
                var fs_params = {
						"height":230,
						"width":296,
						"containerID":"gy_friends_select",
						"UIConfig":"<config><body><background background-color=\"Transparent\" frame-color=\"Transparent\"></background></body></config>",
						"limit":"10",
						onSelectionDone:onSelectionDone
					}
					gigya.services.socialize.showFriendSelectorUI(conf,fs_params);
					pageTracker._trackPageview("/outbound/gigya/connect/" + res.user.nickname); 
  					document.getElementById("gy_sf_subject").value 		= res.user.nickname + ' sent you a message from complex.com.';
            } else {
                document.getElementById("gy_profile").style.display		= "none";
				document.getElementById("gy_status").style.display		= "none";
				document.getElementById("gy_friends").style.display		= "none";
            }
        }

// Update newsfeed
	function reportAction(type, title, url) {
			var act = new gigya.services.socialize.UserAction('{actor} {action} {story}');
			act.setActionName('checking out');
			act.setTemplateField('story', '' + title + '', '' + url + '');
			var params = {
			    userAction:act,
			    callback:gy_responce_newsfeed
			};
			gigya.services.socialize.publishUserAction(conf, params);
		}
			
// Set user status	
	function setStatus(url) {
		var params = {
				status:document.getElementById("gy_statusValue").value,
				callback:gy_responce_status
			};
			gigya.services.socialize.setStatus(conf, params); 
		}

// Send Friend Notification
function onSelectionDone(response) {
			var subject = document.getElementById("gy_sf_subject").value;
			var body = document.getElementById("gy_sf_body").value;
			if (response.friends.getSize() > 0) {
			    var params = {
			        callback:gy_responce_notification,
			        subject:subject,
			        body:body,
			        recipients:response.friends
			    };
				gigya.services.socialize.sendNotification(conf, params)
		    }
		}
		
// Callbacks		
		function gy_responce_newsfeed(response) { //newsfeed
			switch (response.status) {
				case 'OK':
					document.getElementById('gy_responce_newsfeed').style.color 	= "green";
					document.getElementById('gy_responce_newsfeed').innerHTML 		= " | Newsfeed sent";
					pageTracker._trackPageview("/outbound/gigya/newsfeed/success"); 
					break;
					default:
					document.getElementById('gy_responce_newsfeed').style.color 	= "red";
					document.getElementById('gy_responce_newsfeed').innerHTML 		= " | Unable to send a newsfeed. Error message: " + response.status;
					pageTracker._trackPageview("/outbound/gigya/newsfeed/error"); 
			}
		}	
		
		function gy_responce_status(response) { //status
			switch (response.status) {
				case 'OK':
					document.getElementById('gy_responce_status').style.color 		= "green";
					document.getElementById('gy_responce_status').innerHTML 		= " | Status updated";
					pageTracker._trackPageview("/outbound/gigya/status/success"); 
					break;
					default:
					document.getElementById('gy_responce_status').style.color 		= "red";
					document.getElementById('gy_responce_status').innerHTML 		= " | Unable to update status. Error message: " + response.status;
					pageTracker._trackPageview("/outbound/gigya/status/error"); 
			}
		}		
	
		function gy_responce_notification(response) { //notification
			switch (response.status) {
				case 'OK':
					document.getElementById('gy_responce_notification').style.color = "green";
					document.getElementById('gy_responce_notification').innerHTML 	= "Notification sent";
					pageTracker._trackPageview("/outbound/gigya/notification/success");
					break;
					default:
					document.getElementById('gy_responce_notification').style.color = "red";
					document.getElementById('gy_responce_notification').innerHTML 	= "Unable to send notification. Error message: " + response.status;
					pageTracker._trackPageview("/outbound/gigya/notification/error");
			}
		}
		
// disconnect
	function gy_close(response) {  
			if ( response['status'] == 'OK' ) {             
				var user = response['user'];
				var msg = 'User ' + user['nickname'] + ' has been disconnected';
				alert(msg);
				pageTracker._trackPageview("/outbound/gigya/disconnect");
			} else {
				alert('Error :' + response['statusMessage']);
			}  
		}