var notLoggedInText='<span id="convio-notloggedin"><a href="#" onclick="return disqusShowSignup();">Sign up</a> for a free account, or <a href="#" onclick="return disqusShowLogin();">log in</a> if you already have an account.</span>',authToken,consId;
function disqusLoggedIn(){
	//User is logged in to Convio
	disqusShow();
	$('div.dsq-dc-logo').remove();
	$('ul.dsq-login-buttons').show();
	$('img[src*="login-disqus.gif"]').remove();
	$('.dsq-subscribe-rss').css('width','auto');
	if(document.getElementById('dsq-authenticate')&&document.getElementById('dsq-field-name')&&document.getElementById('dsq-field-email')&&document.getElementById('dsq-post-button')){
		//User is not logged into a Disqus account
		if(consName&&consName!='')
			var loggedInAs=consName;
		else
			var loggedInAs=consUserName;
		$('.dsq-autheneticate-copy').html('You are currently logged in as '+loggedInAs+'. <a href="#" onclick="disqusLogout();return false;">Log out?</a>');
		if(consName&&consName!='')
			$('#dsq-field-name').val(consName);
		if(consEmail&&consEmail!='')
			$('#dsq-field-email').val(consEmail);
		disqusSubmitButton();
		disqusLoadingHide();
		disqusShow(true,false);
	}
	else if(document.getElementById('dsq-request-user-stats-comments')){
		//User is logged in to a Disqus account
		disqusLogoutLink();
		disqusSubmitButton();
		disqusLoadingHide();
		disqusShow(true,true);
	}
	else
		var t=setTimeout('disqusLoggedIn()',1000);
}
function disqusNotLoggedIn(){
	//User is not logged in to Convio
	disqusHide();
	$('#disqus_thread').css({
		'width':'100%'
	});
	$('div.dsq-dc-logo').remove();
	$('ul.dsq-login-buttons').hide();
	$('img[src*="login-disqus.gif"]').remove();
	$('.dsq-subscribe-rss').css('width','auto');
	if(document.getElementById('dsq-authenticate')&&document.getElementById('dsq-post-button')){
		$('.dsq-autheneticate-copy').html(notLoggedInText);
		disqusSubmitButton();
		disqusLoadingHide();
		disqusShow(false,false);
	}
	else if(document.getElementById('dsq-request-user-stats-comments')){
		//User is logged in to a Disqus account
		$('<div>'+
			notLoggedInText+
		'</div>').insertBefore('#dsq-form-area');
		disqusSubmitButton();
		disqusLoadingHide();
		disqusShow(true,true);
	}
	else
		var t=setTimeout('disqusNotLoggedIn()',1000);
}
function disqusConvioStyles(){
	$('.dsq-input-wrapper-convio').css({
		'border':'1px solid #999999',
	    '-webkit-border-radius':'3px',
	    '-moz-border-radius':'3px',
	    'border-radius':'3px',
	    'background':'#ffffff url(http://mediacdn.disqus.com/images/themes/narcissus/inputshadow.gif) no-repeat top left',
	    'padding':'3px 5px',
	    'margin':'3px 0'
   });
}
function disqusSubmitButton(){
	$('#dsq-post-button').html('<span>Post Comment</span>');
}
function disqusHide(){
	$('#disqus_thread').css({
		'position':'absolute',
		'left':'-999em'
	});
	$('#dsq-form-area').hide();
	$('.dsq-request-user-info').hide();
}
function disqusShow(showCommentForm,showUserInfo){
	$('#disqus_thread').css({
		'position':'static',
		'left':'0'
	});
	if(showCommentForm)
		$('#dsq-form-area').show();
	if(showUserInfo)
		$('.dsq-request-user-info').show();
}
function disqusLoadingHide(){
	$('#disqus_loading').html('');
}
function disqusLoadingShow(){
	$('#disqus_loading').html('<p><img alt="" src="../images/indicator.gif" /><br />Loading ...</p>');
}
function disqusLogoutLink(){
	var disqusLogoutUrl=$('a.dsq-request-user-logout').attr('href');
	$('a.dsq-request-user-logout').attr('href','http://'+comDomain+'/site/UserLogin?logout=true&NEXTURL='+escape(disqusLogoutUrl));
}
function disqusLogout(){
	$('#disqus_thread').html($('#disqus_thread').html()+'<img style="position:absolute;left:-999em;" id="disqus_logout" alt="" src="http://'+comDomain+'/site/UserLogin?logout=true" width="1" height="1" />');
	disqusHide();
	$('#dsq-field-name').val('');
	$('#dsq-field-email').val('');
	disqusLoadingShow();
	disqusNotLoggedIn();
}
function disqusShowSignup(){
	disqusHideLogin();
	$('#convio-notloggedin').html('<strong>Sign up</strong> for a free account, or <a href="#" onclick="return disqusShowLogin();">log in</a> if you already have an account.');
	$('<div class="dsq-post-fields convio-signup">'+
		'<div id="convio-signup-error"></div>'+
		'<form>'+
			'<table>'+
				'<tr>'+
					'<td class="dsq-post-fields-left">'+
						'<div class="dsq-input-wrapper-convio">'+
							'<input type="text" onblur="if(this.value==\'\') this.value=\'First Name\'" onfocus="if(this.value==\'First Name\') this.value=\'\'" class="dsq-placeholder" value="First Name" name="name.first" id="convio-firstname" />'+
						'</div>'+
					'</td>'+
					'<td class="dsq-post-fields-right">'+
						'<div class="dsq-input-wrapper-convio">'+
							'<input type="text" onblur="if(this.value==\'\') this.value=\'Last Name\'" onfocus="if(this.value==\'Last Name\') this.value=\'\'" class="dsq-placeholder" value="Last Name" name="name.last" id="convio-lastname" />'+
						'</div>'+
					'</td>'+
				'</tr>'+
				'<tr valign="top">'+
					'<td class="dsq-post-fields-left">'+
						'<div class="dsq-input-wrapper-convio">'+
							'<input type="text" onblur="if(this.value==\'\') this.value=\'Email\'" onfocus="if(this.value==\'Email\') this.value=\'\'" class="dsq-placeholder" value="Email" name="email.primary_address" id="convio-email" />'+
						'</div>'+
						'<button style="margin-top:3px;" onclick="disqusSubmitSignup();" class="dsq-button" type="button">'+
							'<span>Sign Up</span>'+
						'</button>'+
					'</td>'+
					'<td class="dsq-post-fields-right">'+

					'</td>'+
				'</tr>'+
			'</table>'+
		'</form>'+
	'</div>').insertAfter('.dsq-autheneticate-copy');
	disqusConvioStyles();
	var optInParentWidth=$('#convio-emailOptInLabel').parent().css('width');
	if(optInParentWidth&&optInParentWidth!='auto'&&optInParentWidth.indexOf('px')!=-1){
		var optInWidth=Number(optInParentWidth.replace('px',''))-20;
		$('#convio-emailOptInLabel').css('width',optInWidth+'px');
	}
	return false;
}
function disqusHideSignup(){
	$('.convio-signup').remove();
}
function disqusSubmitSignup(){
	$('#convio-signup-error').html('');
	var signupData=$('.convio-signup form').serialize();
	if($('#convio-firstname').val()==''||$('#convio-firstname').val()=='First Name')
		$('#convio-signup-error').append('<p style="color:#ff0000;"><img style="position:relative;top:3px;" alt="" src="http://'+comDomain+'/images/error.gif" /> First name is required.</p>');
	if($('#convio-lastname').val()==''||$('#convio-lastname').val()=='Last Name')
		$('#convio-signup-error').append('<p style="color:#ff0000;"><img style="position:relative;top:3px;" alt="" src="http://'+comDomain+'/images/error.gif" /> Last name is required.</p>');
	if($('#convio-email').val()==''||$('#convio-email').val()=='Email')
		$('#convio-signup-error').append('<p style="color:#ff0000;"><img style="position:relative;top:3px;" alt="" src="http://'+comDomain+'/images/error.gif" /> Email address is required.</p>');
	else if($('#convio-email').val().indexOf('@')==-1||$('#convio-email').val().indexOf('.')==-1)
		$('#convio-signup-error').append('<p style="color:#ff0000;"><img style="position:relative;top:3px;" alt="" src="http://'+comDomain+'/images/error.gif" /> Email address is invalid.</p>');
	else{
		//All fields have a valid value
		if(signupData.indexOf('email.accepts_email')==-1)
			signupData+='&email.accepts_email=false';
		var apiUrl='http://'+comDomain+'/site/CRConsAPI?method=create&api_key='+comAPIKey+'&v=1.0&suppress_response_codes=true';
		if(newRecordSourceCode&&newRecordSourceCode!='')
			apiUrl+='&source='+newRecordSourceCode;
		$.ajax({


			type:'POST',
			url:apiUrl,
			data:signupData,
			success:function(data){
				if($(data).find('errorResponse').find('code').text()){
					if($(data).find('errorResponse').find('code').text()=='11')
						//Record already exists
						$('#convio-signup-error').html('<p style="color:#ff0000;"><img style="position:relative;top:3px;" alt="" src="http://'+comDomain+'/images/error.gif" /> An account already exists with this email address. Please <a href="#" onclick="return disqusShowLogin();">log in</a> to comment.');
				}
				else{
					//Record was successfully created
					consName=$('#convio-firstname').val()+' '+$('#convio-lastname').val(),consEmail=$('#convio-email').val(),consUserName=consEmail;
					disqusHideSignup();
					disqusLoggedIn();
				}
			}
		});
	}
}
function disqusShowLogin(){
	disqusHideSignup();
	$('#convio-notloggedin').html('<a href="#" onclick="return disqusShowSignup();">Sign up</a> for a free account, or <strong>log in</strong> if you already have an account.');
	$('<div class="dsq-post-fields convio-login">'+
		'<div id="convio-login-error"></div>'+
		'<form>'+
			'<table>'+
				'<tr>'+
					'<td class="dsq-post-fields-left">'+
						'<div class="dsq-input-wrapper-convio">'+
							'<input type="text" onblur="if(this.value==\'\') this.value=\'Username\'" onfocus="if(this.value==\'Username\') this.value=\'\'" class="dsq-placeholder" value="Username" name="user_name" id="convio-user-name" />'+
						'</div>'+
					'</td>'+
					'<td class="dsq-post-fields-right">'+
						'&nbsp;'+
					'</td>'+
				'</tr>'+
				'<tr>'+
					'<td class="dsq-post-fields-left">'+
						'<div class="dsq-input-wrapper-convio">'+
							'<input type="password" onfocus="if(this.value==\'Password\') this.value==\'\'" class="dsq-placeholder" value="Password" name="password" id="convio-password" />'+
						'</div>'+
					'</td>'+
					'<td class="dsq-post-fields-right">'+
						'&nbsp;'+
					'</td>'+
				'</tr>'+
			'</table>'+
			'<button style="margin-top:3px;" onclick="disqusSubmitLogin();" class="dsq-button" type="button">'+
				'<span>Login</span>'+
			'</button>'+
		'</form>'+
	'</div>').insertAfter('.dsq-autheneticate-copy');
	disqusConvioStyles();
	return false;
}
function disqusHideLogin(){
	$('.convio-login').remove();	
}
function disqusSubmitLogin(){
	$('#convio-login-error').html('');
	$.ajax({
		type:'POST',
		url:'http://'+comDomain+'/site/CRConsAPI?method=login&api_key='+comAPIKey+'&v=1.0&suppress_response_codes=true',
		data:$('.convio-login form').serialize(),
		success:function(data){
			if($(data).find('errorResponse').find('code').text()){
				if($(data).find('errorResponse').find('code').text()=='202')
					$('#convio-login-error').html('<p style="color:#ff0000;"><img style="position:relative;top:3px;" alt="" src="http://'+comDomain+'/images/error.gif" /> Invalid user name or password.');
			}
			else{
				disqusHideLogin();
				disqusHide();
				disqusLoadingShow();
				authToken=$(data).find('loginResponse').find('token').text();
				consId=$(data).find('loginResponse').find('cons_id').text();
				disqusGetUser();
			}
		}
	});
}
function disqusGetUser(){
	$.ajax({
		type:'POST',
		url:'http://'+comDomain+'/site/CRConsAPI?method=getUser&api_key='+comAPIKey+'&v=1.0&suppress_response_codes=true&sso_auth_token='+authToken+'&cons_id='+consId+'&fields=email.primary_address,name.first,name.last',
		success:function(data){
			if($(data).find('errorResponse').find('message').text()){
				//Error getting user data
			}
			else{
				consName=$(data).find('getConsResponse').find('name').find('first').text()+' '+$(data).find('getConsResponse').find('name').find('last').text(),consEmail=$(data).find('getConsResponse').find('email').find('primary_address').text(),consUserName=consEmail;
				disqusLoggedIn();
			}
		}
	});
}
