//-----------------------------------------------------------------------------
// GetSignUp.js
// 2007.10.22 - written by rk7138 for AT&T Communications
// 2007.10.23 - added replaceHrefs() for unobtrusive javascript behavior of links
//-----------------------------------------------------------------------------
// ASSUMES
// -- writeHTML.js is loaded
// -- RightNavigation.TARGET exists in the rendered HTML received from Teamsite
//    and is in the right-hand column of a 3-column layout
//
// METHODS
//   init() replaces all UJS_ links with the different URLs depending on environment TEST or PROD
//
// USAGE
//   for any hyperlink request to the sign up page on SMBWeb, use this syntax for each <A> tag
//   where defaultURL is the URL that will be invoked if javascript is unavailable:
//
//   	<a href="defaultURL" class="UJS_signUp">Visit defaultURL</a>
//   	<a href="defaultURL" class="UJS_feedBackSales">Visit defaultURL</a>
//   	<a href="defaultURL" class="UJS_feedBackSupport">Visit defaultURL</a>
//   	<a href="defaultURL" class="UJS_feedBackBilling">Visit defaultURL</a>
//   	<a href="defaultURL" class="UJS_feedBack">Visit defaultURL</a>
//      
// INFORMATION
//   Provides a redirect to the Sign up page on SMBWeb after determining which
//   Teamsite instance this script is running from.  Defaults to production
//   
//   The unobtrusive javascript behavior will replace the links


var GetSignUp = {		
	REDIRECTS: {
		'FEEDBACK': {
			'test': 'http://whc-test.sbcis.sbc.com:9600/SMBWeb/support/contact/feedback.jsp',
			'prod': 'http://webhosting.att.com/SMBWeb/support/contact/feedback.jsp'
		},
		'SIGNUP': {
			'test': 'http://whc-test.sbcis.sbc.com:9600/SMBWeb/sign-up.jsp',
			'prod': 'https://webhosting.att.com/SMBWeb/sign-up.jsp'
		}
	},
		
	environs: {
		'webhosting.att.com': 'prod',
		'test-www.att.com': 'test',
		'stage-www.att.com': 'test',
		'att.com': 'prod',
		'www.att.com': 'prod'
	},
	
	isReady: false,
			
	getActionURL: function (actionStr){
		var uriObj = window.location.toString().split('?');
		var URI = uriObj[0];
		var domain = URI.match( /:\/\/(www\.)?([^\/:]+)/ );
    	domain = domain[2] ? domain[2]:'';		

		var environ = GetSignUp.environs[domain];
		
		if (!environ){ environ = 'prod'; }
		if (!GetSignUp['REDIRECTS'][actionStr]){ actionStr = 'SIGNUP'; }
		
		var actionURL = GetSignUp['REDIRECTS'][actionStr][environ];

		return actionURL;
	},
				
	getSignUpURL: function (){
		var actionStr = 'SIGNUP';
		var actionURL = GetSignUp.getActionURL(actionStr);	
		
		return actionURL;	
	},
		
	getFeedBackURL: function (agentStr){
		var actionStr = 'FEEDBACK';
		agentStr = agentStr || 'support';
		var actionURL = GetSignUp.getActionURL(actionStr) + '?agent=' + agentStr;	
		
		return actionURL;	
	},
		
	replaceSignUpHrefs: function (){
		var findClassName = 'UJS_signUp';				
		var replaceNodes = getFilteredElementsByClassName(findClassName, 'a');
		
		for (var i = 0; i < replaceNodes.length; i++){
			var node = replaceNodes[i];
			node.className = null;
			node.href = GetSignUp.getSignUpURL();
		}		
	},

	replaceFeedbackHrefs: function (){
		var findClassNane;
		var replaceNodes;
		
		findClassName = 'UJS_feedBackSales';				
		replaceNodes = getFilteredElementsByClassName(findClassName, 'a');
		
		for (var i = 0; i < replaceNodes.length; i++){
			var node = replaceNodes[i];
			node.className = null;
			node.href = GetSignUp.getFeedBackURL('sales');
		}
		
		findClassName = 'UJS_feedBackBilling';				
		replaceNodes = getFilteredElementsByClassName(findClassName, 'a');
		
		for (var i = 0; i < replaceNodes.length; i++){
			var node = replaceNodes[i];
			node.className = null;
			node.href = GetSignUp.getFeedBackURL('billing');
		}
		
		findClassName = 'UJS_feedBackSupport';				
		replaceNodes = getFilteredElementsByClassName(findClassName, 'a');
		
		for (var i = 0; i < replaceNodes.length; i++){
			var node = replaceNodes[i];
			node.className = null;
			node.href = GetSignUp.getFeedBackURL('support');
		}
		
		findClassName = 'UJS_feedBack';				
		replaceNodes = getFilteredElementsByClassName(findClassName, 'a');
		
		for (var i = 0; i < replaceNodes.length; i++){
			var node = replaceNodes[i];
			node.className = null;
			node.href = GetSignUp.getFeedBackURL('support');
		}		
	},
				
	replaceHrefs: function (){
		if (!GetSignUp.isReady){
			GetSignUp.replaceSignUpHrefs();
			GetSignUp.replaceFeedbackHrefs();
			
			GetSignUp.isReady = true;
		}
	},
		
	init: function (){
		GetSignUp.replaceHrefs();
	}
}

addEvent(window, 'load', GetSignUp.init);
