//	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, pvi){
	document.getElementById("schemeType").value = schemeType;
	if(schemeType == 'trial'){
		//	A free trial will always be a monthly account
		document.getElementById("paymentMode").value = 'monthly';
	}
	proceedForBuy(schemeType, pvi);
}

function applyPlan(planName, priceVersionId){
	var queryString = '';
	var campRefParams = getQueryStringValues();
	var utm_term = campRefParams["utm_term"];
	var utm_campaign = campRefParams["utm_campaign"];
	var utm_source = campRefParams["utm_source"];
	var redirUrl = campRefParams["ip"];

	if(utm_term != null){
		queryString += '&utmTerm=' + utm_term;
	}
	if(utm_campaign != null){
		queryString += '&utmCampaign=' + utm_campaign;
	}
	if(utm_source != null){
		queryString += '&utmSource=' + utm_source;
	}
	if(redirUrl != null){
		queryString += '&ip=' + redirUrl;
	}
	usePricingPlan(planName, queryString, null, priceVersionId);
}
function isTablet(){
	if((navigator.userAgent.indexOf('Android') != -1) && (screen.width>=640 || screen.height>=640)){
		return true;
	}else if(navigator.userAgent.match(/iPad/i) || navigator.userAgent.match(/TouchPad/i) )  
    	return true;
    else
    	return false;
}

function usePricingPlan(planName, addnlQueryString, regnPageName, priceVersionId) {
	var regnUrl = 'corp/registration/', queryString = '', redirectFlagText = '';
	var regPage = 'register_trial_2.html';
	
	$("#plan").val(planName);
	var schemeType = 'trial';
	if($('#schemeType') != null && $('#schemeType').val().trim() != ''){
		schemeType = $('#schemeType').val().trim();
	}
	if(isTablet() && schemeType != 'buy'){
		regnUrl = 'm/';
		regPage = 'tablet_register_trial.html';
	}
	else if(fromNasPage() && schemeType != 'buy'){
		regnUrl = 'netgear/';
		regPage = 'start-free-trial.html';
	}
	else if(fromSpiceWorksPage() && schemeType != 'buy'){
		regnUrl = 'ms/spiceworks/';
		regPage = 'start-free-trial.html';
	}
	else if(fromVMPage() && schemeType != 'buy'){
		regnUrl = 'vmware/';
		regPage = 'start-free-trial.html';
	}
	else if(fromFileSharingPage() && schemeType != 'buy'){
		regnUrl = 'ms/file-sharing/';
		regPage = 'start-free-trial.html';
	}		
	else if(fromRicohMinisite() && schemeType != 'buy'){
		regnUrl = 'ricoh/';
		regPage = 'index.html';
	}			
	else if(fromAffiliatesMinisite() && schemeType != 'buy'){
		regnUrl = 'a/';
		regPage = 'start-free-trial.html';
	}			
	else if(fromQuickofficeMinisite() && schemeType != 'buy'){
		regnUrl = 'quickoffice/';
		regPage = 'start-free-trial.html';
	}	
	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 != null && regnPageName.trim() != ''){
			if(!isTablet())
				regPage = regnPageName;
		}
		if(schemeType != "buy"){
			regPage = getRegistrationPageName(regPage);		// checks for campaign related page urls.
		}

		if($("#hidFromHybridPage").length > 0){			
			if($("#hidFromHybridPage").val().trim() == "true"){
				queryString += '&isHybrid=true';
			}			
		}
		if(typeof(priceVersionId) != 'undefined' && priceVersionId != null && priceVersionId != ''){
			queryString += '&pvi=' + priceVersionId;
		}
		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 || $("#hidFromVMPage").length > 0){			
			//planName = $(".orange1 .radio").attr("plan") ;
			//planId = $(".orange1 .radio").val("plan");
			if($("#hidFromNASPage").length > 0 && $("#hidFromNASPage").val().trim() == "true"){
				queryString += '&isNas=true';
			}
			else if($("#hidFromVMPage").length > 0 && $("#hidFromVMPage").val().trim() == "true"){
				queryString += '&isVM=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, pvi){
	var planName = getSelectedPlanName();
	var paymentMode = document.getElementById("paymentMode").value.trim();
	if(paymentMode.trim().toLowerCase() == 'annual'){		
		document.getElementById("monthlyPricing").value = document.getElementById("hidTotalCost").value.trim();
	}
	applyPlan(planName, pvi);
}

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';
	var tempGeoRedirectUrl = GEO_REDIRECT_URL = "";
	var geoRedirectCookie =  getCookie("geoRedirecUrl");
	if(geoRedirectCookie && geoRedirectCookie != ""){
		//	utilize the url from the preset cookie
		tempGeoRedirectUrl = geoRedirectCookie
		//	To prevent security hole using cookie-tampering
		if(tempGeoRedirectUrl == "www-avl" || tempGeoRedirectUrl == "www-sjc" || tempGeoRedirectUrl == "www-am2"){
			GEO_REDIRECT_URL = tempGeoRedirectUrl
		}
	}
	else{
		$.get(url, function(redirectURL) {
		  	if(redirectURL.toLowerCase() != 'default'){	  		
                GEO_REDIRECT_URL = redirectURL;
			}
		    setSessionCookie("geoRedirecUrl", redirectURL);
		});
	}	
}

function setSessionCookie(name, value, domain){
	//set session-only cookie using name/value format
	if(typeof domain != "undefined" && domain != null && domain != ""){
		document.cookie = name + "=" + value + ";path=/;domain="+ domain + ";";		
	}
	else{
		document.cookie = name + "=" + value + ";path=/";
	}
}

