etsyGoogle = {};
 
 etsyGoogle.init = function(){
		etsyGoogle.myService = new google.gdata.analytics.AnalyticsService('gaExportAPI_acctSample_v2.0');
		etsyGoogle.scope = 'https://www.google.com/analytics/feeds';
		this.profileReady = false;
		this.errorCount = 0;
		etsyGoogle.checkStatus();
		
		
 };
 
 
 etsyGoogle.getSelectedTable = function(){
	return this.tableId;
 
 };
 
 etsyGoogle.selectChange = function(){
	
	var select = document.getElementById('GA_select');
	etsyGoogle.tableId = select.options[select.selectedIndex].value;
	controller.userInputDone();
 };
 
 etsyGoogle.isLogin = function(){
		if (google.accounts.user.checkLogin(this.scope)){
			return true;
		}
		else {
			return false;
		}
 };
  
 etsyGoogle.checkStatus = function(){
	var button = document.getElementById('googleButton');
	var profiles = document.getElementById('GA_profiles');
	
	if (this.isLogin() && !this.profileReady) {
		button.innerHTML='Log Out';
		profiles.innerHTML = '<h2>Set Profile:</h2><select id="GA_select" onchange="etsyGoogle.selectChange()" style="width:130px;font-size: 8pt;"></select>';
		this.getAccountFeed();
	}
	else if (!this.isLogin()){
		button.innerHTML='Import Analytics';
		if (controller.currentTab) {
			profiles.innerHTML = controller.info[controller.currentTab.name].GAstr;
		}
	}
 
 };
 
 etsyGoogle.submit = function(){
	this.profileReady = false;
	
	if (this.isLogin()) {
		google.accounts.user.logout();
		this.checkStatus();
	}
	else {
		controller.setCookie();
		google.accounts.user.login(this.scope);
	}
 };
 
 etsyGoogle.getAccountFeed = function() {
  var myFeedUri =
      'https://www.google.com/analytics/feeds/accounts/default?max-results=50';
  this.myService.getAccountFeed(myFeedUri, this.handleAccountFeed, this.accountFeedError);
};

etsyGoogle.handleAccountFeed = function(result) {
	var entries = result.feed.getEntries();
	var select = document.getElementById('GA_select');
	
	for (var x in entries){
		select.options[x] = new Option(entries[x].getTitle().getText(),entries[x].getTableId().getValue());
	}	

	etsyGoogle.profileReady = true;
	userInfo.done();
};

etsyGoogle.isProfileReady = function(){
	if (this.profileReady || !controller.info[controller.currentTab.name].GA || !this.isLogin()){
		return true;
	}
	else {
		return false;
	}
};


etsyGoogle.setSelect = function(){

	var select = document.getElementById('GA_select');
	var userName = userInfo.getUserName().toLowerCase();
	
	if (!select)
		return;
	
	if (select.options.length == 1){
		select.options[0].selected = true;
		this.tableId = select.options[0].value;
		return;
	}
	
	var best = 0;
	var hint = false;
	
	for (var i = 0; i < select.options.length; i++){
		var profile = select.options[i].text.toLowerCase();
		
		var hasEtsy = profile.indexOf('etsy');
		var hasShop = profile.indexOf(userName);
		
		if (profile == userName || (hasEtsy != -1 && hasShop != -1)){
			best = i;
			break;
		}
		
		if (hasShop != -1){
			best = i;
			hint = true;
		}
		
		if (hasEtsy != -1 && !hint){
			best = i;
		}
		
	
	}
	
	select.options[best].selected = true;
	this.tableId = select.options[best].value;

};

etsyGoogle.accountFeedError = function(e) {
	etsyGoogle.errorCount++;
	if  (etsyGoogle.errorCount < 2){
		etsyGoogle.getAccountFeed();	
	}
	etsyGoogle.handleError(e);
};


function GAQuery(){
	this.options = '';
}

GAQuery.prototype.setOptions=function(opt){
   for(var i=0;i<opt.length;i++)  
   {
      this.options += "&"+opt[i];
   }
};

GAQuery.prototype.query = function(){
	var queryStr = 'https://www.google.com/analytics/feeds/data' + this.options.replace('&','?') + '&ids=' + etsyGoogle.getSelectedTable();
	etsyGoogle.myService.getDataFeed(queryStr,this.callback,this.errorHandler);
};

etsyGoogle.forceLogout = function() {
	
    if (document.cookie && document.cookie != '') {
        var split = document.cookie.split(';');
        for (var i = 0; i < split.length; i++) {
            var name_value = split[i].split("=");
			var scope = name_value[0].substring(0,11);
			
			if (scope == ' g314-scope' || scope == 'g314-scope-'){
				
				document.cookie = name_value[0] + '=;expires=Thu, 01-Jan-1970 00:00:01 GMT;path=/';
				document.cookie = name_value[0] + '=;expires=Thu, 01-Jan-1970 00:00:01 GMT;path=/dev';
				document.cookie = name_value[0] + '=;expires=Thu, 01-Jan-1970 00:00:01 GMT;path=/dev/';
			}
        }

    }
	
	window.location.reload();
};

etsyGoogle.handleError = function(e) {

 if (e.cause.status == 401){
		etsyGoogle.forceLogout();
		return;
 }
 


 var error = 'Error from Google Analytics\n' +
				'Message:' + e.message;
				
	if (e.cause){
		error += '\nHTTP Error:' +  e.cause.status + ': ' + e.cause.statusText; 
	}	
	alert(error);		
};

