//	Global variables
var GEO_REDIRECT_URL = '';

//	On load function - for all landing pages
$(document).ready(function(){	
	//	call to get geo-redirect url
	getGeoRedirectUrl();	
});

//show hides corresponding  divs
function showHide(id)
{
	document.getElementById('l1').className = 'prof';
	document.getElementById('l2').className = 'work';
	document.getElementById('l3').className = 'comp';

for(i = 1; i <= 3; i++)
{
	document.getElementById('content'+i).style.display ='none';
}
	document.getElementById('content'+id).style.display ='block';

	switch(id){
		case 1:
			document.getElementById('l1').className = 'prof_active';
		break;
		case 2:
			document.getElementById('l2').className = 'work_active';
		break;
		case 3:
			document.getElementById('l3').className = 'comp_active';
		break;

		}
}

//	shows Contact Us box
function showContactBoxPop(){
	showDIV('contact');
	centerBox('contact');
}

//	for direct registration
function usePlan(planName)
{
	// Since this function is being widely used across the board, we are just delegating the call to the actual function
	usePricingPlan(planName);
}

//	For webinar information popup
function sendWebinarInformation(){
    var firstName = document.getElementById('webdm_FName').value;
    var lastName = document.getElementById('webdm_LName').value;
    var phone = document.getElementById('webdm_Phone').value;
    var email = document.getElementById('webdm_Email').value;

	//	Get the selected demo date details
	var selectedDate = getCheckedValue(document.frmWebDemo.radDemoDates);
	if(selectedDate == ""){
		document.getElementById('contactUsErrorMessage').innerHTML = "Please select a demo date.";
        showHideContactErrorDiv('contactInfSend','400');
		if(typeof(Ext) != "undefined")
			Ext.get('contactInfSend').center();
        return(false);
	}
	var objSelectedDemo = document.getElementById(selectedDate);
	var accessCode = objSelectedDemo.getAttribute('accessCode');
	var demoDate = objSelectedDemo.getAttribute('demoDate');
	var demoSubject = objSelectedDemo.getAttribute('demoSubject');
	var dialNumber = objSelectedDemo.getAttribute('dialNumber');
	var demoURL = objSelectedDemo.getAttribute('demoURL');
	var meetingId = objSelectedDemo.getAttribute('meetingId');
	var audioPin = objSelectedDemo.getAttribute('audioPin');

    var comments = "";
	comments=demoDate;
    var CONTACT_US_ERROR_MSG = "First Name / Last Name / Email cannot be blank.";
    var INVALID_EMAIL_ADDRESS = "Invalid email address.";

	if (trimAll(firstName) == '' || trimAll(lastName) == '' || trimAll(email) == ''){
        document.getElementById('contactUsErrorMessage').innerHTML = "First Name / Last Name / Email cannot be blank.";
        showHideContactErrorDiv('contactInfSend','400');
		if(typeof(Ext) != "undefined")
			Ext.get('contactInfSend').center();
        return(false);
    }

    if(validateEmail(email)==false){
        document.getElementById('contactUsErrorMessage').innerHTML = "Invalid email address.";
        showHideContactErrorDiv('contactInfSend','400');
		if(typeof(Ext) != "undefined")
			Ext.get('contactInfSend').center();
        return(false);
    }

	if(phone != ""){
		phoneRegExp = /^((\+?\d{1,3}(-| )?\(?\d\)?(-| )?\d{1,5})|(\(?\d{2,6}\)?))(-| )?(\d{3,4})(-| )?(\d{4})(( x| ext)\d{1,5}){0,1}$/;
		if(!phoneRegExp.test(phone)) {
			document.getElementById('contactUsErrorMessage').innerHTML = 'Invalid phone number.';
			showHideContactErrorDiv('contactInfSend','400');
			if(typeof(Ext) != "undefined")
				Ext.get('contactInfSend').center();
			return(false);
		}
	}
	else{
		phone = '  ';
	}

    if(comments ==""){
        comments='  ';
    }

	showDialog('webDemoPop');
	var msgArea = document.getElementById("workMessageText");
	msgArea.innerHTML = "Sending request, please wait...";
	showPopDisplay("workMessagePop");

	egnyteUtils.loadScript("/wsgi/webinar_invite?firstName=" + egnyteUtils.URLencode(firstName) +
        "&lastName=" + egnyteUtils.URLencode(lastName) + "&email=" + egnyteUtils.URLencode(email) +
        "&comments=" + egnyteUtils.URLencode(comments) + "&phone=" + egnyteUtils.URLencode(phone) +
		"&accessCode=" + egnyteUtils.URLencode(accessCode) + "&demoDate=" + egnyteUtils.URLencode(demoDate) +
		"&demoSubject=" + egnyteUtils.URLencode(demoSubject) + "&dialNumber=" + egnyteUtils.URLencode(dialNumber) +
		"&demoURL=" + egnyteUtils.URLencode(demoURL) + "&audioPin=" + egnyteUtils.URLencode(audioPin) + "&meetingId=" + egnyteUtils.URLencode(meetingId)
        , "typeof(contactUsResponse) != 'undefined'", sendWebinarInformationCB);
}


function sendWebinarInfo(){
    var firstName = document.getElementById('demoFirstName').value;
    var lastName = document.getElementById('demoLastName').value;
    var phone = document.getElementById('demoPhoneNumber').value;
    var email = document.getElementById('demoContactUsEmail').value;

	//	Get the selected demo details
	var accessCode	= document.getElementById('hidAccessCode').value;
	var demoDate	= document.getElementById('hidDemoDate').value;
	var demoSubject = document.getElementById('hidDemoSubject').value;
	var dialNumber	= document.getElementById('hidDialNumber').value;
	var demoURL		= document.getElementById('hidDemoUrl').value;
	var meetingId	= document.getElementById('hidMeetingId').value;
	var audioPin	= document.getElementById('hidAudioPin').value;

    var comments = "";
	comments=demoDate;
    var CONTACT_US_ERROR_MSG = "First name/Last name/Email cannot be blank.";
    var INVALID_EMAIL_ADDRESS = "Invalid email address.";

	if (trimAll(firstName) == '' || trimAll(lastName) == '' || trimAll(email) == ''){
        document.getElementById('contactUsErrorMessage').innerHTML = "First name/Last name/Email cannot be blank.";
        showHideContactErrorDiv('contactInfSend','400');
        return(false);
    }

    if(validateEmail(email)==false){
        document.getElementById('contactUsErrorMessage').innerHTML = "Invalid email address.";
        showHideContactErrorDiv('contactInfSend','400');
        return(false);
    }

	if(phone != ""){
		phoneRegExp = /^((\+?\d{1,3}(-| )?\(?\d\)?(-| )?\d{1,5})|(\(?\d{2,6}\)?))(-| )?(\d{3,4})(-| )?(\d{4})(( x| ext)\d{1,5}){0,1}$/;
		if(!phoneRegExp.test(phone)) {
			document.getElementById('contactUsErrorMessage').innerHTML = 'Invalid phone number.';
			showHideContactErrorDiv('contactInfSend','400');
			return(false);
		}
	}
	else{
		phone = '  ';
	}

    if(comments ==""){
        comments='  ';
    }

	//showDialog('webDemoPop');
	showDIV('demosingup');
	var msgArea = document.getElementById("workMessageText");
	msgArea.innerHTML = "Sending request, please wait...";
	showPopDisplay("workMessagePop");

	egnyteUtils.loadScript("/wsgi/webinar_invite?firstName=" + egnyteUtils.URLencode(firstName) +
        "&lastName=" + egnyteUtils.URLencode(lastName) + "&email=" + egnyteUtils.URLencode(email) +
        "&comments=" + egnyteUtils.URLencode(comments) + "&phone=" + egnyteUtils.URLencode(phone) +
		"&accessCode=" + egnyteUtils.URLencode(accessCode) + "&demoDate=" + egnyteUtils.URLencode(demoDate) +
		"&demoSubject=" + egnyteUtils.URLencode(demoSubject) + "&dialNumber=" + egnyteUtils.URLencode(dialNumber) +
		"&demoURL=" + egnyteUtils.URLencode(demoURL) + "&audioPin=" + egnyteUtils.URLencode(audioPin) + "&meetingId=" + egnyteUtils.URLencode(meetingId)
        , "typeof(contactUsResponse) != 'undefined'", sendWebinarInformationCB);
}

function sendWebinarInformationCB(){
	showPopDisplay("workMessagePop");
    var CONTACT_US_CONFIRMATION = "Thank you.  You will receive an email with a link to the Live demo.";
    document.getElementById('contactUsErrorMessage').innerHTML = CONTACT_US_CONFIRMATION;
    showHideContactErrorDiv('contactInfSend','400');
	if(typeof(Ext) != "undefined")
		Ext.get('contactInfSend').center();
}

//script below for pricing grid page only

//show hides corresponding  divs
function showHide(id)
{
	document.getElementById('l1').className = 'prof';
	document.getElementById('l2').className = 'work';
	document.getElementById('l3').className = 'comp';
	
for(i = 1; i <= 3; i++)	
{
	document.getElementById('content'+i).style.display ='none';
}
	document.getElementById('content'+id).style.display ='block';
	
	switch(id){
		case 1: 
			document.getElementById('l1').className = 'prof_active';
		break;
		case 2: 
			document.getElementById('l2').className = 'work_active';
		break;
		case 3: 
			document.getElementById('l3').className = 'comp_active';
		break;
		
		}
}

function proceedToReg(schemeType){
	document.getElementById("schemeType").value = schemeType;
	if(schemeType == 'trial'){
		//	A free trial will always be a monthly account
		document.getElementById("paymentMode").value = 'monthly';
	}
	proceedForBuy(schemeType);
}

function usePricingPlan(planName, addnlQueryString, regnPageName)
{
	var regnUrl = 'corp/registration/', queryString = '', redirectFlagText = '';
	var regPage = 'register_trial.html';
	$("#plan").val(planName);
	var schemeType = 'trial';
	if($('#schemeType') != null && $('#schemeType').val().trim() != ''){
		schemeType = $('#schemeType').val().trim();
	}
	queryString += '?plan=' + planName;
	var webexUsername = getRequestParameter("com.egnyte.webexUsername");
    if (webexUsername){
        queryString += '&webexUsername=' + webexUsername;        
    }
	if(planName != null && planName != ""){
		if(schemeType == "buy"){
			regPage = 'register_buy.html';
		}
		if(typeof(regnPageName) != 'undefined' && regnPageName.trim() != ''){
			regPage = regnPageName;
		}
		if($("#hidFromHybridPage").length > 0){			
			if($("#hidFromHybridPage").val().trim() == "true")			{
				queryString += '&isHybrid=true';
			}			
		}
		if(typeof(addnlQueryString) != 'undefined' && addnlQueryString != null)
			queryString += addnlQueryString;
		var url = toSecureUrl(regnUrl + regPage + queryString);		
		window.location.href = url;	
	}
}

// specifically for NAS related pages
function useNASPricingPlan(planName, addnlQueryString)
{
	var queryString = '';
	var regnUrl = 'corp/';
	var regPage = 'nas_hybrid_pricing.html';
		
	var schemeType = 'trial';
	if($('#schemeType') != null && $('#schemeType').val().trim() != ''){
		schemeType = $('#schemeType').val().trim();
	}
	
	queryString += '?plan=' + planName;
	var webexUsername = getRequestParameter("com.egnyte.webexUsername");
    if (webexUsername){
        queryString += '&webexUsername=' + webexUsername;        
    }
    
    if(planName != null && planName != ""){
		if(schemeType == "buy"){
			regPage = 'registration/register_buy.html';
		}		
		if($("#hidFromNASPage").length > 0){			
			//planName = $(".orange1 .radio").attr("plan") ;
			//planId = $(".orange1 .radio").val("plan");
			if($("#hidFromNASPage").val().trim() == "true")			{
				queryString += '&isNas=true';
			}
			if (webexUsername){
				queryString += '&webexUsername=' + webexUsername;        
			}
		}
		
		if(typeof(addnlQueryString) != 'undefined')
			queryString += addnlQueryString;
		url = toSecureUrl(regnUrl + regPage) + queryString;
		window.location.href = url;
	}
}

/**
Transform current url to a secure (https) url.
*/
function toSecureUrl(target) {
	var queryString = '', redirectFlagText = '';
	var url = window.location.href.split(":");
    var newUrl = '', tempUrl = '';
    tempUrl = url[1].substring(2).split("/")[0];
    var arrUrlParts = tempUrl.split('.');
    if(GEO_REDIRECT_URL != ""){
    	if(target.indexOf('?') != -1)
			target += "&georedirect=true";
		else
			target += "?georedirect=true";
		if(arrUrlParts.length == 3){
			arrUrlParts[0] = GEO_REDIRECT_URL;
			tempUrl = arrUrlParts.join(".");
		}
		else if(arrUrlParts.length == 2){
			tempUrl = GEO_REDIRECT_URL + '.' + tempUrl;
		}
    }
    newUrl = "https://" + tempUrl;	// remove any request parameters
    if (url.length == 3) {    // port specified, transform port to a secure port
        var urlPathTokens = url[2].split("/");
        var port = urlPathTokens[0];
        var newPort = port.substring(0, 1) + "443";
        newUrl = newUrl + ":" + newPort;
    }
    newUrl = newUrl + "/" + target;
    
    var campRefParams = getQueryStringValues();
	var utm_term = campRefParams["utm_term"];
	var utm_campaign = campRefParams["utm_campaign"];
	var utm_source = campRefParams["utm_source"];

	if(utm_term != null){
		document.getElementById("utm_term").value = utm_term;
	}
	if(utm_campaign != null){
		document.getElementById("utm_campaign").value = utm_campaign;
	}
	if(utm_source != null){
		document.getElementById("utm_source").value = utm_source;
	}
    return newUrl;
}

function proceedForBuy(schemeType){
	var planName = Ext.get('plan').dom.value.trim();
	var regnPageName = 'register_trial_2.html';
	var paymentMode = document.getElementById("paymentMode").value.trim();
	if(paymentMode.trim().toLowerCase() == 'annual'){		
		document.getElementById("monthlyPricing").value = document.getElementById("hidTotalCost").value.trim();
	}
	if(schemeType.toLowerCase() == 'buy'){
		regnPageName = 'register_buy.html';
	}
	usePricingPlan(planName, null, regnPageName);
}

function getRequestParameter(parameterName) {
    var queryString = window.location.search.substring(1);
    var xparameterName = parameterName + "=";
    var begin, end;
    if ( queryString.length > 0 ) {
        begin = queryString.indexOf ( xparameterName );
        if ( begin != -1 ) {
            begin += xparameterName.length;
            end = queryString.indexOf ( "&" , begin );
            if ( end == -1 ) {
                end = queryString.length
            }
            return unescape ( queryString.substring ( begin, end ) );
        }
    }
    return null;
}

function getGeoRedirectUrl(){
	var url = '/wsgi/geo_dc_lookup.py';
	$.get(url, function(redirectURL) {
	  	if(redirectURL.toLowerCase() != 'default'){	  		
			GEO_REDIRECT_URL = redirectURL;
		}
	});
}
