var SolutionPageChoose = Class.create({

	initialize: function(){
		
		this.strSiteRoot='http://'+document.location.hostname;
		
		this.strConnectionTypeId='connection-type';
		
		this.strConnectionCategoryId='connection-category';
		
		this.strConnectionSubcategoryId='connection-subcategory';
		
		this.arrCategories=new Array();
		
		this.arrCategories['default']=[
		
			{"name":'Premium',"value":'premium'},
			{"name":'Non-Premium',"value":'nonpremium'},
			{"name":'One-Way',"value":'oneway'}
		];
		
		this.arrCategories['premium']=[
		
			{"name":'Short Codes',"value":'premium-shortcodes'},
			{"name":'Long Codes',"value":'premium-longcodes'},
			{"name":'xPay (Payforit)',"value":'/solutions/sms/premium/payforit'},
			{"name":'Connectivity',"value":'premium-connectivity'},
			{"name":'Voice Short Codes',"value":'/solutions/sms/premium/voiceshortcodes'},
			{"name":'Mobile Crediting',"value":'/solutions/sms/premium/mobilecrediting'},
			{"name":'Mobile Payments',"value":'/solutions/sms/premium/mobilepayments'},
			{"name":'Premium Goods',"value":'/solutions/sms/premium/premiumgoodssms'}
		];
		
		this.arrCategories['premium-shortcodes']=[
			
			{"name":'Shared',"value":'/solutions/sms/premium/shortcodes/shared'},
			{"name":'Dedicated',"value":'/solutions/sms/premium/shortcodes/dedicated'}
		];
		
		this.arrCategories['premium-longcodes']=[
			
			{"name":'Shared',"value":'/solutions/sms/premium/worldwide/shared'},
			{"name":'Dedicated',"value":'/solutions/sms/premium/worldwide/dedicated'}
		];
		
		this.arrCategories['premium-connectivity']=[
		
			{"name":'Open Network',"value":'/solutions/sms/premium/connectivity/opennetwork'},
			{"name":'Retry Engine',"value":'/solutions/sms/premium/connectivity/retryengine'},
			{"name":'Compliance',"value":'/solutions/sms/premium/connectivity/compliance'}
		];
		
		this.arrCategories['nonpremium']=[
		
			{"name":'Virtual Numbers',"value":'/solutions/sms/nonpremium/virtual'},
			{"name":'Virtual SIM',"value":'/solutions/sms/nonpremium/virtualsim'},
			{"name":'FTU Shortcodes',"value":'/solutions/sms/nonpremium/freetousershortcodes'}
		];
		
		this.arrCategories['oneway']=[
		
			{"name":'Connectivity',"value":'/solutions/sms/oneway/connectivity'}
		];
	},
	
	create: function(){
	
		$(this.strConnectionTypeId).innerHTML='<option value="0">Connection Type...</option>';
		
		$(this.strConnectionCategoryId).innerHTML='<option value="0">...</option>';
		
		$(this.strConnectionSubcategoryId).innerHTML='<option value="0">...</option>';
		
		this.arrCategories['default'].each(function(objOption) {
		
			var objNewOption = document.createElement('option');
		
			objNewOption.innerHTML=objOption.name;
			
			objNewOption.value=objOption.value;
			
			$(this.strConnectionTypeId).appendChild(objNewOption);
		
		}.bind(this));
		
		$(this.strConnectionTypeId).enable();
		
		$(this.strConnectionCategoryId).disable();
		
		$(this.strConnectionSubcategoryId).disable();
	},
	
	updateCategory: function(){
	
		if('0'!=$(this.strConnectionTypeId).value){
		
			$(this.strConnectionCategoryId).innerHTML='<option value="0">Category...</option>';
			
			$(this.strConnectionSubcategoryId).innerHTML='<option value="0">...</option>';
			
			this.arrCategories[$F(this.strConnectionTypeId)].each(function(objOption) {
			
				var objNewOption = document.createElement('option');
				
				objNewOption.innerHTML=objOption.name;
				
				objNewOption.value=objOption.value;
				
				$(this.strConnectionCategoryId).appendChild(objNewOption);
				
			}.bind(this));
			
			$(this.strConnectionCategoryId).enable();
		}
		else{
		
			$(this.strConnectionCategoryId).disable();
			
			$(this.strConnectionSubcategoryId).disable();
		}
	},
	
	updateSubcategory: function(){
	
		if('0'!=$(this.strConnectionCategoryId).value){
			
			if(0>$(this.strConnectionCategoryId).value.indexOf('/')){
			
				$(this.strConnectionSubcategoryId).innerHTML='<option value="0">Subcategory...</option>';
				
				this.arrCategories[$F(this.strConnectionCategoryId)].each(function(objOption) {
				
					var objNewOption = document.createElement('option');
					
					objNewOption.innerHTML=objOption.name;
					
					objNewOption.value=objOption.value;
					
					$(this.strConnectionSubcategoryId).appendChild(objNewOption);
					
				}.bind(this));
				
				$(this.strConnectionSubcategoryId).enable();
			}
			else{
			
				$(this.strConnectionSubcategoryId).innerHTML='<option value="'+$(this.strConnectionCategoryId).value+'">...</option>';
				
				$('connection-submit').pulsate({pulses: 2, duration: 1});
				
				$(this.strConnectionSubcategoryId).disable();
			}
		}
		else{
			
			$(this.strConnectionSubcategoryId).innerHTML='<option value="0">Category...</option>';
			
			$(this.strConnectionSubcategoryId).disable();
		}
	},
	
	updatePage: function(){
	
		var strConnectionType=$F(this.strConnectionTypeId);
		
		var strConnectionCategory=$F(this.strConnectionCategoryId);
		
		var strConnectionSubcategory=$F(this.strConnectionSubcategoryId);
		
		if('0'!=strConnectionType) {
		
			if('0'!=strConnectionCategory){
			
				if('0'!=strConnectionSubcategory){
			
					this.redirect(strConnectionSubcategory);
				}
				else{
				
					$(this.strConnectionSubcategoryId).pulsate({pulses: 2, duration: 1});
				}
			}
			else{
			
				$(this.strConnectionCategoryId).pulsate({pulses: 2, duration: 1});
			}
		}
		else{
		
			$(this.strConnectionTypeId).pulsate({pulses: 2, duration: 1});
		}
	},
	
	redirect: function(strCountry){
	
		window.location=this.strSiteRoot+strCountry;
	}
});

document.observe("dom:loaded", function() {
	
	if(undefined!=$('connection-type')&&undefined!=$('connection-category')&&undefined!=$('connection-subcategory')){
	
		var myControl=new SolutionPageChoose();
		
		myControl.create();
		
		$('connection-type').observe('change', function() {myControl.updateCategory()});
		$('connection-category').observe('change', function() {myControl.updateSubcategory()});
		$('connection-submit').observe('click', function() {myControl.updatePage()});
	}
});
