<?xml version="1.0" encoding="UTF-8" ?>
<Module>
    <ModulePrefs title="Event Register"
        directory_title="Event Register"
	title_url="http://www.eventbee.com/home/ning/eventregister.xml"
	author="Eventbee Inc"
        author_email="support@eventbee.com"
	author_affiliation="http://www.eventbee.com"
        author_location="USA"
	thumbnail="http://eventbee.com/home/images/ningimages/eventbee.gif"
	screenshot="http://eventbee.com/home/images/ningimages/screenshot.jpg"
	summary="Sell tickets from your Ning pages. Pay flat $1 fee per ticket, regardless of your ticket price. We support PayPal, Google credit card processing to further reduce your ticketing costs." 
	description="Sell tickets to your own events right from your social network. Pay flat $1 fee per ticket, regardless of your ticket price. We support PayPal, Google credit card processing to further reduce your ticketing costs. Eventbee Inc., provides state-of-the-art web-based event management and event promotion tools to the Events Industry. Since 2003, over 8000 Event Managers sold tickets using the Eventbee Platform. Eventbee operates with the single mission of maximizing ticket sales while providing easy to use web-based software to the Events Industry."
        icon="http://eventbee.com/home/images/ningimages/favicon.jpg" >
        <Require feature="opensocial-0.7" />
	<Require feature='views' />					
        <Require feature='dynamic-height' />		
        <Require feature="skins"/>
	<Require feature="analytics"/>
	<Require feature="ning" />
	<Locale />
    </ModulePrefs>

<Content type="html" view="canvas">
<![CDATA[
<script>



       var bgColor     = gadgets.skins.getProperty(gadgets.skins.Property.BG_COLOR);
       	var fontColor   = gadgets.skins.getProperty(gadgets.skins.Property.FONT_COLOR);
       	var anchorColor = gadgets.skins.getProperty(gadgets.skins.Property.ANCHOR_COLOR);
	var bgImage = gadgets.skins.getProperty(gadgets.skins.Property.BG_IMAGE);
        fontColor= fontColor.replace('#', '');
	anchorColor= anchorColor.replace('#', '');
	bgColor= bgColor.replace('#', ''); 
	var evtid="";
	var params1 = gadgets.views.getParams();
	var purpose='';
	var eventid='';
	var evtnme='';
	var manage=false;
	var domain="";
	var domain1="";
	var sessionid="";
	var owner="";
	var viewer="";
	var tranid="";
	function callback(foo) {
	
	if (foo.hadError()){
	}
	else {
	 domain1=foo.getField(ning.app.Field.SUB_DOMAIN);
	 domain=domain1+".ning.com";
	}
	
	}
	if (gadgets.util.hasFeature("ning")) {
	ning.app.getInfo(callback);
	} 
	
	
	
	function MakeRegURLRequest(vname,eid){
	viewer=vname;
	var params={};
	params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.POST;
	params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;

	params[gadgets.io.RequestParameters.POST_DATA] = gadgets.io.encodeValues({evtid:eid,domain:domain,source:"regactivity"});
	url ='http://www.eventbee.com/ningapp/ticketing/getNingURL.jsp';
	gadgets.io.makeRequest(url, PostRegUrlresponse, params);
	      };
	function PostRegUrlresponse(obj) {
			var url="";
			var evtname="";
			var json = obj.data;
			url=json.eventurl;
			evtname=json.eventname;
			createRegisterActivity(url,viewer,evtname);
	          };	
	
	
	
	
	
	function makeEventURLRequest(oname,eid){
		owner=oname;
		var params={};
		params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.POST;
		 params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;

		params[gadgets.io.RequestParameters.POST_DATA] = gadgets.io.encodeValues({evtid:eid,domain:domain,source:"listingactivity"});
		url ='http://www.eventbee.com/ningapp/ticketing/getNingURL.jsp';
		gadgets.io.makeRequest(url, Postsessionresponse, params);
	      };
	
	function Postsessionresponse(obj) {
		var url="";
		var evtname="";
		var json = obj.data;
		url=json.eventurl;
		evtname=json.eventname;
		createListingActivity(url,owner,evtname);
          };	
	
	function createListingActivity(url,oname,evtname)  {
		var title = evtname;
		var activityParams = {};
		
	
		activityParams[opensocial.Activity.Field.TITLE] =oname +"  listed  "+title+" event, buy tickets at "+url ;
		var activity = opensocial.newActivity(activityParams);
		opensocial.requestCreateActivity(activity, opensocial.CreateActivityPriority.HIGH);
	};
	  
	function createRegisterActivity(url,viewer,eventname) {
	
		var title = eventname;
		
		var activityParams = {};
		var html =viewer +"  registered for "+title+" event, buy tickets at "+url ;
		activityParams[opensocial.Activity.Field.TITLE] = html;
		var activity = opensocial.newActivity(activityParams);
		opensocial.requestCreateActivity(activity, opensocial.CreateActivityPriority.HIGH);
	};
	
	function response(data) {
		var viewer		= data.get("viewer").getData();
		var owner		= data.get("owner").getData();
		var vname		= viewer.getDisplayName();
		var vid		= viewer.getId();
		var oid		= owner.getId();
		var oname             = owner.getDisplayName();
		var ownerstatus	= (vid==oid);
		if(purpose=='' && ownerstatus){	
		        
			document.getElementById('_EbeeIFrame').src = "http://www.eventbee.com/ningapp/ticketing/getAccountBasedCanvasPage.jsp;jsessionid="+sessionid+"?oid="+oid+"&on="+oname+"&d="+domain+"&app=eventregister&bg="+bgColor+"&fc="+fontColor+"&os=true&ac="+anchorColor;
		}else if(purpose=='manage' && ownerstatus==true){
		        
			makeEventURLRequest(oname,eventid);
			document.getElementById('_EbeeIFrame').src = "http://www.eventbee.com/ningapp/ticketing/eventmanage.jsp?vid="+vid+"&oid="+oid+"&oname="+oname+"&domain="+domain+"&GROUPID="+eventid+"&view=canvas";
		}else if(purpose=='' && ownerstatus==false){
			document.getElementById('_EbeeIFrame').src = "http://www.eventbee.com/ningapp/ticketing/showAllEvents?vid="+vid+"&oid="+oid+"&oname="+oname+"&domain="+domain+"&view=canvas&bgColor="+bgColor+"&fontColor="+fontColor+"&anchorColor="+anchorColor+"&bgImage="+bgImage;
		}else if(purpose=='regdone'){
		       
			document.getElementById('_EbeeIFrame').src = "http://www.eventbee.com/guesttasks/regend.jsp?GROUPID="+eventid;
		}
		
		else if(purpose=='ticketingpage'){
		document.getElementById('_EbeeIFrame').src = "http://www.eventbee.com/eregister?eid="+eventid+"&platform=ning&vid="+vid+"&oid="+oid+"&domain="+domain+"&bgColor="+bgColor+"&fontColor="+fontColor+"&anchorColor="+anchorColor+"&bgImage="+bgImage+"&&viewType=iframe;resizeIFrame=true";
		}
		
		else if(purpose=='paypalregdone'){
				        
					document.getElementById('_EbeeIFrame').src = "http://www.eventbee.com/ningregister/paypalconfirm.jsp?tid="+tranid+"&source=Paypal&eid="+eventid;
		}
		else if(purpose=='paypalcancelreturn'){
								        
				document.getElementById('_EbeeIFrame').src = "http://www.eventbee.com/ningregister/register.jsp?eid="+eventid+"&tid="+tranid;
		}
		else {
			document.getElementById('_EbeeIFrame').src = "http://www.eventbee.com/ningapp/ticketing/register?vid="+vid+"&oid="+oid+"&eventid="+eventid+"&oname="+oname+"&domain="+domain;
		}
	};		

	function init() {
	  
	  var req = opensocial.newDataRequest();
	  req.add(req.newFetchPersonRequest(opensocial.DataRequest.PersonId.OWNER), "owner");
	  req.add(req.newFetchPersonRequest(opensocial.DataRequest.PersonId.VIEWER), "viewer");
	  req.send(response);
	};
	
	if ('undefined' === typeof(params1) || 'undefined' === typeof(params1['purpose'])){
	}else{
		eventid=params1['eventid'];
		purpose=params1['purpose'];
		manage=false;
		evtnme=params1['evtname'];
		tranid=params1['id'];
	}	
	gadgets.window.adjustHeight("700");
	init();
</script>
<script src='http://eventbee.com/home/js/widget/iFrameclientside.js' type='text/javascript'></script>

<iframe id='_EbeeIFrame' name='_EbeeIFrame' src="" width="100%" height="700px" border="0"/>
]]>
</Content>

<Content type="html" view="ning.main,profile">
<![CDATA[
<style>
.gadget {
	background-color: #FFFFFF;
	color: #999;
	padding:1px;
	
}
.gadget a {
	color: #00f;
}
input.button {
	display:inline-block;
	width:auto;
	border:1px solid #aaa;
	font-size:1em;
	text-decoration:none;
	color:#333;
	overflow:visible;
	white-space:nowrap;
	line-height:1em!important;
	padding:.35em .6em .45em;
	cursor:pointer;
}
.smallestfont { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; font-weight: lighter; }

</style>
<link href="http://www.eventbee.com/home/ning/css/style.css" rel="stylesheet" type="text/css" />
	
<div class='gadget'  align='center'>
<div id="profilecontent"> </div>
</div>	
<script type="text/javascript">	             
var domain="";
var domain1="";
	function callback(foo) {
	
	if (foo.hadError()){
	}
	else {
	 domain1=foo.getField(ning.app.Field.SUB_DOMAIN);
	 
	  domain=domain1+".ning.com";
	
	}
	
	}
	if (gadgets.util.hasFeature("ning")) {
	ning.app.getInfo(callback);
	} 
	

var nid="";
var Contrast = function()  {
// private functions and properties
	var _private =
	{
		min : { 
		  'brightness': 125, 
		  'difference': 500 
		},
		brightness : function(rgb1, rgb2){
		  var b1 = ((rgb1.r * 299) + (rgb1.g * 587) + (rgb1.b * 114)) / 1000;
		  var b2 = ((rgb2.r * 299) + (rgb2.g * 587) + (rgb2.b * 114)) / 1000;
		  return Math.abs(Math.round(b1-b2));
		},
		difference : function(rgb1, rgb2){
		  var diff = (Math.max(rgb1.r, rgb2.r) - Math.min(rgb1.r, rgb2.r)) + 
			     (Math.max(rgb1.g, rgb2.g) - Math.min(rgb1.g, rgb2.g)) + 
			     (Math.max(rgb1.b, rgb2.b) - Math.min(rgb1.b, rgb2.b));
		  return Math.abs(Math.round(diff));
		},
		rgb : function(hex){
		  hex = hex.replace('#','');
		  var rgb = {
		    r: parseInt(hex[0] + hex[1], 16),
		    g: parseInt(hex[2] + hex[3], 16),
		    b: parseInt(hex[4] + hex[5], 16)
		  };
		  return rgb;
		}
	};  
}
          
function getStyle (cssrule) {
	for (var i in document.styleSheets) {
	    var styleRules = (document.styleSheets[i].rules) ? document.styleSheets[i].rules :
			     (document.styleSheets[i].cssRules) ? document.styleSheets[i].cssRules : [];
	    for (var j=0; j<styleRules.length; j++){
		if (styleRules[j].selectorText.toUpperCase() == cssrule.toUpperCase()) {
		    return styleRules[j];
		}
	    }
	}
	return null;
}
var fontcolors   = gadgets.skins.getProperty(gadgets.skins.Property.FONT_COLOR);
		    
function updateCSS() {
	var bgColor     = gadgets.skins.getProperty(gadgets.skins.Property.BG_COLOR);
	var fontColor   = gadgets.skins.getProperty(gadgets.skins.Property.FONT_COLOR);
	var anchorColor = gadgets.skins.getProperty(gadgets.skins.Property.ANCHOR_COLOR);
	var gadgetStyle = getStyle('.gadget');

	var gadgetLinks = getStyle('.gadget a');
	var gadgetButtons = getStyle('input.button');
	gadgetStyle.style.color = fontColor;
	gadgetStyle.style.backgroundColor = bgColor;
	gadgetLinks.style.color = anchorColor;
	gadgetButtons.style.backgroundColor = anchorColor;

	var buttonContrast = Contrast('input.button', '#222222');
	if (buttonContrast == true) {
		gadgetButtons.style.color = '#222222';
	} 
	else if (anchorColor == '#ffffff'){
		gadgetButtons.style.color = '#000000';
	} else {
		gadgetButtons.style.color = '#FFFFFF';
	}	        
};

function SubmitLogin(oid){
	nid=oid;
	var login=document.getElementById("login").value;
	var password=document.getElementById("password").value;
	makePOSTLoginRequest(login,password,oid)
};

function makePOSTLoginRequest(login,password,oid){
	var params = {};
	//var domain=ning.core.getNetworkDomain();
	
	params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.POST;
	params[gadgets.io.RequestParameters.POST_DATA] = gadgets.io.encodeValues({login:login,password:password,oid:oid,domain:domain});
	url ='http://www.eventbee.com/ningapp/ticketing/loginprocess.jsp';
	gadgets.io.makeRequest(url, PostLoginresponse, params);
};    
     
function PostLoginresponse(obj) {
	var data = obj.text;
	if(data.indexOf("Success")>-1){
		makePOSTRequest(true,nid);
	}else
		document.getElementById("loginerrormsg").innerHTML="Invalid Login";
};	

function ningsignup(oid){
	nid=oid;
	var uname=document.getElementById("name").value;
	var password=document.getElementById("profileKey").value;
	var fname=document.getElementById("fname").value;
	var lname=document.getElementById("lname").value;
	var email=document.getElementById("email").value;
	makePOSTSignupRequest(oid,uname,password,fname,lname,email);
};
function makePOSTSignupRequest(oid,uname,password,fname,lname,email){
	var params = {};  
	//var domain=ning.core.getNetworkDomain();
	params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.POST;
	params[gadgets.io.RequestParameters.POST_DATA] = gadgets.io.encodeValues({oid:oid,uname:uname,password:password,fname:fname,lname:lname,email:email,domain:domain});
	url ='http://www.eventbee.com/ningapp/ticketing/signupprocess.jsp';
	gadgets.io.makeRequest(url, Postsignupresponse, params);
};

function Postsignupresponse(obj) {
	var data = obj.text;
	if(data.indexOf("Success")>-1){
		makePOSTRequest(true,nid);
	}
	else
		document.getElementById("signuperrormsg").innerHTML=data;
};	

function makePOSTRequest(ownerstatus,oid) {

	var params = {};
	//var domain  =  ning.core.getNetworkDomain();   
	var url ="";
	params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.POST;
	if(ownerstatus){
	url ='http://www.eventbee.com/ningapp/ticketing/getAccountBasedScreen.jsp?oid='+oid+'&ownerstatus='+ownerstatus+'&domain='+domain+'&appname=eventregister&from=main';
	}else{
	 url ='http://www.eventbee.com/ningapp/ticketing/getViewerEvents.jsp?oid='+oid+'&ownerstatus='+ownerstatus+'&domain='+domain;
	}
	gadgets.io.makeRequest(url, Postresponse, params);
};
function Postresponse(obj) {

	document.getElementById('profilecontent').innerHTML = obj.text;
};			

function gotoCanvas() {
	var canvas_view = new gadgets.views.View("canvas");
	gadgets.views.requestNavigateTo(canvas_view);
};			

function  registerEvent(id){			                
	var params = {};
	params['eventid'] = id;
	params['purpose'] = 'ticketingpage';
	var canvas_view = new gadgets.views.View("canvas");
	gadgets.views.requestNavigateTo(canvas_view, params);
};			
			
function response(data){ 							
	var viewer		= data.get("viewer").getData();
	var owner		= data.get("owner").getData();
	var vname		= encodeURIComponent(viewer.getDisplayName());
	var vid			= viewer.getId();
	var oid			= owner.getId();
	var oname               = encodeURIComponent(owner.getDisplayName());				 
	var ownerstatus	= (vid==oid);
	if(ownerstatus)
		gadgets.window.adjustHeight("380");
	else
		gadgets.window.adjustHeight("312");
	makePOSTRequest(ownerstatus,oid,oname);

};		
		
function inviteNingFriends(evtid,oid,evtname){
	var params = {};
	params[opensocial.Message.Field.TYPE] = opensocial.Message.Type.EMAIL;
	params[opensocial.Message.Field.TITLE] ="Visit My Event: "+evtname+" and Register";
	var eventurl="http://www.eventbee.com/ningapp/event.jsp?eid="+evtid+"&oid="+oid+"&d="+ning.core.getNetworkDomain();
	var message = opensocial.newMessage("Visit "+eventurl+"\n"+"to view Event details and register" , params);
	opensocial.requestSendMessage("VIEWER_FRIENDS", message, function(resp){});
}

function init() { 
	var req = opensocial.newDataRequest();
	req.add(req.newFetchPersonRequest(opensocial.DataRequest.PersonId.OWNER), "owner");
	req.add(req.newFetchPersonRequest(opensocial.DataRequest.PersonId.VIEWER), "viewer");
	req.send(response);
};

updateCSS();
init();
              
</script>	
]]>
</Content>	
</Module>

