if(!console){
	var console = {
		log: function(){}
	};
}

function sendToFriendEmail(toName, toEmail, fromName, fromEmail, bodyText, templateName){
	console.log('Sending email using template: ' + templateName);
	var f = document.createElement('iframe');
	f.style.height = '1px';
	f.style.width = '1px';
	f.style.visibility = 'hidden';
	f.style.position = 'absolute';
	f.src = '/bsquare/ssl/email/sendToFriendEmail.do?'
		+ 'toName='+escape(toName)
		+ '&toEmail='+escape(toEmail)
		+ '&fromName='+escape(fromName)
		+ '&fromEmail='+escape(fromEmail)
		+ '&templateName='+escape(templateName)
		+ '&bodyText='+escape(bodyText);
		
	document.body.appendChild(f);
}

function reg_popup(url) {
	var w = window.open(url, 'want2bsquare_user_pages', 'width=300,height=560,status=0,alwaysRaised=1,scrollbars=0,resizable=0');
	w.focus();
}

function open_page(page_name, do_return){

	try {
	var page_name = page_name.gsub(/\s/, '');

	// This code seems to be in place to fix an IE issue when the app first launches.
	// However it is blocking true error in the flash app from sending users to the error page.
	if(page_name == 'error'){
		return;
	}
	
	var popup_urls = {
		login: '#{sroot}/auth-ssl/users/userLogin.do',
		forgotPassword: '#{sroot}/ssl/users/forgotPassword.do',
		registration: '#{sroot}/ssl/users/registration.do',
		editProfile: '#{sroot}/auth-ssl/users/editProfile.do',
		marketplace: '#{sroot}/ssl/marketplace/marketplaceHome.do',
		main: '/pub-share/w2s/popup.html'
	};
	
	var redirect_urls = {
		error: '/pub-share/w2s/error.html', 
		flash_error: '/pub-share/w2s/need_flash.html',
		logout: '#{sroot}/auth-ssl/users/logout.do'
	};
	
	var popup_names = {
		'*': 'want2bsquare_user_pages', 
		main: 'want2bsquare_main_popup'
	};
	
	var page_options = {
		'*': 'width=300,height=610,status=0,alwaysRaised=1,scrollbars=0,resizable=0,top='+((screen.height/2) - 280)+',left='+((screen.width/2) - 150),
		marketplace: 'width=955,height=600,status=0,alwaysRaised=1,scrollbars=0,resizable=0,top='+((screen.height/2) - 300)+',left='+((screen.width/2) - 478),
		main: 'width=955,height=600,status=0,alwaysRaised=1,scrollbars=0,resizable=0,top='+((screen.height/2) - 300)+',left='+((screen.width/2) - 478)
	};
		
	var url = (new Template(popup_urls[page_name] || redirect_urls[page_name])).evaluate({root: APP_ROOT, sroot: SECURE_APP_ROOT});

    if(popup_urls[page_name]){
		var opts = page_options[page_name] || page_options['*'];
//		if(!['main'].include(page_name) && navigator && navigator.userAgent && navigator.userAgent.match('Mac') && navigator.userAgent.match(/Firefox\/2\.0(\.0\.(1|0))?$/)){
//			var w = window.open('/pub-share/w2s/popup_helper.html?js_popup_url=' + escape(url) + '&js_window_name=' + escape(popup_names[page_name] || popup_names['*']) + '&js_opts=' + escape(opts) + '&auto_close='+(page_name=='login' ? '0' : '1'), 'w2s_popup_helper', opts);
//		}
//		else{
			console.log(opts);
			var w = window.open(url, popup_names[page_name] || popup_names['*'], opts);
//		}
		if(w){
			w.focus();
			if(do_return){
				return w;
			}
		}
	}
	else{
		window.location = url;
	}
	
	} catch (error) {
		console.log('ERROR: unable to load page "'+page_name+'"');
	}
	
}
/// create alias for "invoke function"  Do we need this?
var invoke_function = open_page;

function thisMovie(movieName) {
	var isIE = navigator.appName.indexOf("Microsoft") != -1;
	return (isIE) ? window[movieName] : document[movieName];
}

function updateSSID(new_ssid) {
	thisMovie("bh_flash").loginUpdate(new_ssid);
}

function requireFlash(major_ver, minor_vers, sub_vers){
	if(!DetectFlashVer(major_ver,minor_vers,sub_vers)){
		window.location = '/pub-share/w2s/need_flash.html';
	}
}

function logout(){
	var l = new Ajax.Request(SECURE_APP_ROOT + '/auth-ssl/users/logout.do');
}

function sendAnalyticsEvent(str){
	ns=s_account; if(str!=null)ns+=","+str;void(s_gs(ns));
}
function sendLinkEvent(str,lnkname){
	ns=s_account; if(str!=""&&str!=null)ns+=","+str; s_linkType="o"; s_lnk=true;
	s_linkName=lnkname; void(s_gs(ns));
}

function callOmnitureFromSWF(pageName,channel) {
	s_pageName = pageName;
	s_channel = channel;
	sendAnalyticsEvent('');
}