﻿var _currentPanal;
var _lastFormID;
var _cookieObj = {};
var _panalOpen = false;
var _contactSalesForm;
var _subscribeForm;
var _requestDemoForm;

var LOGIN_ERROR_MSG_AUTHENTICATION_SERVER_DOWN = 'Please try again later';
var LOGIN_ERROR_MSG_NOT_APPROVED = 'Your account has not yet been approved. Please try again later.';
var LOGIN_ERROR_MSG_WRONG_UP = "Incorrect Username or Password.";
var LOGIN_ERROR_COOKIES = 'Cookies are required.';
	
$(document).ready(function(){
	if ($('#loginRegisterDrawer').length){
		$('#loginRegisterDrawer_form_register').hide();
		$('#loginRegisterDrawer_form_login :input').removeAttr('disabled');
		_currentPanal = 'login'
		closePanal(false);
		if (!isCookieEnabled()){
			showLoginError('loginRegisterDrawer_form_login', LOGIN_ERROR_COOKIES);
			showLoginError('loginRegister_form_login', LOGIN_ERROR_COOKIES);
		}

		$('#loginRegisterDrawer_nav_demoCenterBtn').click(function(){	
			onDemoCenterClick();
		});
		$('#loginRegisterDrawer_nav_loginBtn').click(function(){	
			onLoginClick();
		});
		$('#loginRegisterDrawer_nav_registerBtn').click(function(){	
			onRegisterClick();
		});
		$('#loginRegisterDrawer_form_login_closeBtn').click(function(){	
			closePanal(true);
		});
		$('#loginRegisterDrawer_form_register_closeBtn').click(function(){	
			closePanal(true);
		});
		$('#loginRegisterDrawer_form_login_submitBtn').click(function(){
			attemptLogin('loginRegisterDrawer_form_login');
		});
	}
	if ($('#modalContactSales').length){
		_contactSalesForm = new ContactForm('modalContactSales');
		var url = DEMO_CENTER_FORM_PROXY_CONTACT_SALES_URL + '?e=' + _cookieObj.email + "&c=" + _cookieObj.created + "&p=cf_contactSales";
		_contactSalesForm.setSharepointProxy(url);
		_contactSalesForm.listen(_contactSalesForm.FORM_SEND_COMPLETE, onContactSalesFormComplete)
	}
	if ($('#modalSubscribe').length){
		_subscribeForm = new ContactForm('modalSubscribe');
		var url = DEMO_CENTER_FORM_PROXY_SUBSCRIBE_URL + '?e=' + _cookieObj.email + "&c=" + _cookieObj.created + "&p=cf_subscribe";
		_subscribeForm.setSharepointProxy(url);
		_subscribeForm.listen(_subscribeForm.FORM_SEND_COMPLETE, onContactSalesFormComplete)
	}
	
	if ($('#modalRequestDemo').length){
		_requestDemoForm = new ContactForm('modalRequestDemo');
		var url = DEMO_CENTER_FORM_PROXY_REQUEST_DEMO_URL + '?e=' + _cookieObj.email + "&c=" + _cookieObj.created + "&p=cf_requestDemo";
		_requestDemoForm.setSharepointProxy(url);
		_requestDemoForm.listen(_requestDemoForm.FORM_SEND_COMPLETE, onContactSalesFormComplete);
	}

	if ($('#modalShare').length){
		_shareForm = new ContactForm('modalShare');
		var url = DEMO_CENTER_FORM_PROXY_SHARE_URL + '?e=' + _cookieObj.email + "&c=" + _cookieObj.created + "&p=cf_share";
		_shareForm.setSharepointProxy(url);
	}
	
	if ($('#loginRegister_form_register').length){
		_registerForm = new ContactForm('loginRegister_form_register');
		var url = REGISTER_PROXY_URL + '?p=loginRegister_form_register';
		_registerForm.setSharepointProxy(url);
		_registerForm.listen(_registerForm.FORM_SEND_COMPLETE, onRegisterFormComplete)
	}
	
});

	function onContactSalesFormComplete(data){
		var success = data[0];
		var fieldIdPrefix = $('p:first', data[1]).attr('p');
		if (success == 'success'){
			var updateCode = $('update', data[1]).attr('errorCode');
			if (updateCode && updateCode == '0x00000000'){
				_cookieObj.email = jQuery.trim($('#'+fieldIdPrefix+'_Title').val())
				var newCookieString = 'email=' + _cookieObj.email
					+ '&created=' + _cookieObj.created
					+ '&approved=' + _cookieObj.approved
					+ '&name=' + _cookieObj.name;
				createCookie('okay', newCookieString, .5);
				var url = DEMO_CENTER_FORM_PROXY_CONTACT_SALES_URL + '?e=' + _cookieObj.email + "&c=" + _cookieObj.created + "&p=cf_contactSales";
				_contactSalesForm.setSharepointProxy(url);
				url = DEMO_CENTER_FORM_PROXY_SUBSCRIBE_URL + '?e=' + _cookieObj.email + "&c=" + _cookieObj.created + "&p=cf_subscribe";
				_subscribeForm.setSharepointProxy(url);
				url = DEMO_CENTER_FORM_PROXY_REQUEST_DEMO_URL + '?e=' + _cookieObj.email + "&c=" + _cookieObj.created + "&p=cf_requestDemo";
				_requestDemoForm.setSharepointProxy(url);
			}
		}	
	}
	
	function onRegisterFormComplete(data){
		eraseCookie('okay');
	}
	
	function onLoginClick(){
		if (_panalOpen){
			if(_currentPanal == 'login'){
				closePanal(true);
			} else {
				showLoginForm();
			}
		} 
	}
	
	function showLoginForm(){
		/*
		$('#loginRegisterDrawer_form_register').fadeOut('fast', function(){
			$('#loginRegisterDrawer_form_login').fadeIn('fast');
		});	
		*/
		$('#loginRegisterDrawer_form_login').slideDown('fast');
		$('#loginRegisterDrawer_form_register').slideUp('fast');
		//$('#loginRegisterDrawer_nav_loginBtn').css('z-index', 1);
		//$('#loginRegisterDrawer_nav_registerBtn').css('z-index', -1);
		$('#loginRegisterDrawer_form_login :input').removeAttr('disabled');
		_currentPanal = 'login'
	}
	
	function onRegisterClick(){
		if (_panalOpen){
			if(_currentPanal == 'register'){
				closePanal(true);
			} else {
				// show reg
				/*
				$('#loginRegisterDrawer_form_login').fadeOut('fast', function (){
					$('#loginRegisterDrawer_form_register').fadeIn('fast');	
				});
				*/
				$('#loginRegisterDrawer_form_login').slideUp('fast');
				$('#loginRegisterDrawer_form_register').slideDown('fast');
				//$('#loginRegisterDrawer_nav_loginBtn').css('z-index', -1);
				//$('#loginRegisterDrawer_nav_registerBtn').css('z-index', 1);
				$('#loginRegisterDrawer_form_register :input').removeAttr('disabled');
				_currentPanal = 'register'
			}
		} 
	}
	
	function closePanal(animate){
		var someHeight = -1*$('#loginRegisterDrawer').height()-3;
		if (animate){
			$('#loginRegisterDrawer').animate({
				top: someHeight
			});
			//$('#loginRegisterDrawer_nav_registerBtn').fadeOut('fast');
			//$('#loginRegisterDrawer_nav_loginBtn').fadeOut('fast');
		} else {
			$('#loginRegisterDrawer').css('top', someHeight);
			//$('#loginRegisterDrawer_nav_registerBtn').css('display', 'none');
			//$('#loginRegisterDrawer_nav_loginBtn').css('display', 'none');
		}
		$('#loginRegisterDrawer_nav_demoCenterBtn').fadeIn('fast');
		
		_panalOpen = false;
	}
	
	function onDemoCenterClick(){
		// open panal
		
   		
   		//$('#loginRegisterDrawer_nav_demoCenterBtn').fadeOut('fast');
   		//$('#loginRegisterDrawer_nav_registerBtn').fadeIn('fast');
   		//$('#loginRegisterDrawer_nav_loginBtn').fadeIn('fast');
   		showLoginForm();
		if (_panalOpen){
				closePanal(true);
			} else {
				$('#loginRegisterDrawer').animate({
					top: 0
				});
				_panalOpen = true;
			}
		
	}
	
	function attemptLogin(formID){
		$('#'+formID+' :input').attr('disabled', true);
		$('#'+formID+'_submitBtn a span').text('Loading')
		$('#'+formID+'_submitBtn').css('width', '72px');
		var username = $('#'+formID+'_username').val();
		var password = $('#'+formID+'_password').val();
		password = hex_md5(password);
		var url = LOGIN_SERVICE_URL;
		_lastFormID = formID;
		$.ajax({type: 'POST', url:url, async:true, dataType:"text", data:{username:username, password:password}, complete:onLoginResult});
	}
	
	
	
	function onLoginResult(jqXHR, textStatus){
		if (textStatus == 'error'){
			showLoginError(_lastFormID, LOGIN_ERROR_MSG_AUTHENTICATION_SERVER_DOWN);
		}
		var data = $.fromXMLString(jqXHR.responseText);
		var numRows = $('item', data).length;
		if (!numRows){
			var hasExpectedDocEl = !!$('items', data).length;
			if (!hasExpectedDocEl){
				showLoginError(_lastFormID, LOGIN_ERROR_MSG_AUTHENTICATION_SERVER_DOWN);				
			} else {
				showLoginError(_lastFormID, LOGIN_ERROR_MSG_WRONG_UP);
			}
			renableForm(_lastFormID);
		} else {
			var approved = parseInt($('item approved', data).text());
			if (approved === 0){
				showLoginError(_lastFormID, LOGIN_ERROR_MSG_NOT_APPROVED);
				renableForm(_lastFormID);
			} else {
				// set cookie with info
				var email = $('item email', data).text();
				var created = $('item created', data).text();
				var approved = $('item approved', data).text();
				var name = $('item name', data).text();
				var resetRequired = $('item resetRequired', data).text();
				var data = 'email=' + email
					+ '&created=' + String(created).split(' ').join('T') + 'Z'
					+ '&approved=' + approved
					+ '&resetRequired=' + resetRequired
					+ '&name=' + name;
				createCookie('okay', data, .5);
				// redirect
				if (resetRequired === '1'){
					document.location = DEMO_CENTER_PASSWORD_RESET_PAGE_URL;
				} else {
					document.location = LOGIN_REDIRECT_URL;
				}
			}			
		}
	}
	
	function checkLogin(doRedirect){
		var loggedIn = false;
		if (!isCookieEnabled()){
			loggedIn = false;
		}
		var cookie = jQuery.trim(readCookie('okay'));
		_cookieObj = {};
		var vars = cookie.split("&");
		for (var i=0;i<vars.length;i++) {
			var pair = vars[i].split("=");
			_cookieObj[pair[0]] = jQuery.trim(pair[1]);
		}
		if (_cookieObj.email !== '' && _cookieObj.created !== '' && _cookieObj.approved == '1'){
			loggedIn = true;
		}
		if(!loggedIn && doRedirect){
			document.location = DEMO_CENTER_KICKBACK_URL;
		}
		if (_cookieObj.resetRequired == '1' && doRedirect){
			document.location = DEMO_CENTER_PASSWORD_RESET_PAGE_URL;
		}
	}
	
	function renableForm(formID){
		$('#'+formID+' :input').removeAttr('disabled');
		$('#'+formID+'_submitBtn a span').text('Enter')
		$('#'+formID+'_submitBtn').css('width', '58px');
	}
	
	function showLoginError(formID, error){
		$('#'+formID+' .contactForm_error').text(error).css('display', 'block');
	}
	
	
