(function($){
$.fn.editable = function(settings) {
	
	 var defaults = {	 				 			
	 			className: '',
	 			style: '',
	 			switchLabel: 'save',
	 			cancelLabel: 'cancel',
	 			callback: '',
	 			errorString: '<div style="display: block;" class="error-msg" id="{errorID}">{message}</div>',
	 			errorHook: '#report',
	 			passwordProtect: true
	 		};

	 if( settings ) {
		 $.extend(defaults, settings);
	 }
	 
	 	
	 return this.each(function() {
		 
			$(this).unbind('click').click(function(){	
			
				 try {
					
					if( $(this).attr('rev')) {
						var elID =  $(this).attr('rev');	
						$('#' + elID).data('href', $(this).attr('href'));					
					}	else	{
						throw new oteError('Element does not have an element to tie to in $.fn.editable, exiting', 1);
						return false;
					}	
					
					var inputValue = $.trim($('#' + elID).text());
					$('#' + elID).data('initial', inputValue);					
					
					var inputType = 'text';
					if($(this).attr('rel').length == 0){				
						warning = 'Unnable to locate a rel for element in $.fn.editable for ' + $(this).attr('href');
					}	else	{
						/** search for an input type **/						
						patternInputType = 'input.?([^&]*)';
						patternCaseType = 'case.?([^&]*)';
						
						var rel = $(this).attr('rel');						
						
						var inputTypes = rel.match(patternInputType);
						var caseTypes = rel.match(patternCaseType);
						
						var inputType = (inputTypes && inputTypes[1]) ? inputTypes[1] : 'text';						
						var caseType = (caseTypes && caseTypes[1]) ? caseTypes[1] : 'lower';
					
						$('#' + elID).data('type', inputType);
						$('#' + elID).data('case', caseType);
					}			
					switch(inputType){					   
					 	case 'select':						 		
					 		var source = $(this).attr('href');
					 		
					 		if(source.indexOf('?') !== false){					 			
					 			sources = source.split('?');
					 			source = sources[0];
					 			params = sources[1];
					 			if(ote.Setup.defaults.templateID == 24){
					 				params = params.substr(0, $.trim(params).length-2);
					 				params = params + $.trim(inputValue);
					 			}
					 		}	else	{					 			
					 			params = false;
					 		}
					 		
					 		$.ajax({
					 			   type: "POST",
					 			   url: source,
					 			   data: params,
					 			   success: function(r){
						 				if(r.result){						 					
						 					var input = '<select id="input_' + elID + '" class="' + defaults.className + '" style="' + defaults.style + '">' + r.result + '</select>';
						 					$('#' + elID).empty().append(input);						 					
						 				}	else	{
						 					throw new oteError('Errors in datasource request for select ' + elID, 1);
						 				}					 			   },
					 			   error: function(r, status){
					 				  throw new oteError('Errors in datasource response for select ' + elID + '. Resonse status: ' + status, 1);
					 			   },
					 			   dataType: 'json'
					 			 });				 	
					 		break;					
						case 'text':		 		
							var input = '<input type="text" id="input_' + elID + '" value="' + inputValue + '" class="' + defaults.className + '" style="' + defaults.style + '" />';							
							$('#' + elID).empty().append(input);							
							break;
						case 'vanity':
							var input = '<input type="text" id="input_' + elID + '" value="' + inputValue + '" class="' + defaults.className + '" style="' + defaults.style + '" />';							
							$('#' + elID).empty().append(input);							
							break;
						case 'urlLink':							
							inputValue = $('#' + elID + 'User').val();
							var domainValue = $('#' + elID + 'Domain').val();
							var protocolValue = $('#' + elID + 'Protocol').val();
							var input = protocolValue + '<input type="text" id="input_' + elID + '" value="' + inputValue + '" class="' + defaults.className + '" style="' + defaults.style + '" />.' + domainValue;							
							$('#' + elID).empty().append(input);							
							break;
						case 'phone':
							subValue = inputValue.split('-');
							var input1 = '<input type="text" id="input_' + elID + '1" value="' + $.trim(subValue[0]) + '" size="4" class="' + defaults.className + '" style="' + defaults.style + '" /> - ';
							var input2 = '<input type="text" id="input_' + elID + '2" value="' + $.trim(subValue[1]) + '" size="4" class="' + defaults.className + '" style="' + defaults.style + '" /> - ';
							var input3 = '<input type="text" id="input_' + elID + '3" value="' + $.trim(subValue[2]) + '" size="4" class="' + defaults.className + '" style="' + defaults.style + '" />';
							$('#' + elID).empty().append(input1)
												 .append(input2)
												 .append(input3);
							break;
						case 'passwordConfirm':			
							
							var input = '<input type="password" id="input_' + elID + '" value="' + inputValue + '" class="' + defaults.className + '" style="' + defaults.style + '" />';
							input += '<input type="password" id="input_' + elID + '_conf' + '" value="' + inputValue + '" class="' + defaults.className + '" style="' + defaults.style + '" />';
							
							if(defaults.passwordProtect !== false){								
								myAccount.passwordForm();
								return;
							}	else	{								
								$('#' + elID).empty().append(input);
								
							}
							break;
						case 'date':
							var d = new Date();
							var currentYear = d.getFullYear();
							var dateSplitter = '/';
							if ( inputValue.search( dateSplitter ) == -1 ) {
								dateSplitter = '-';
							}
							inputValues = inputValue.split( dateSplitter);
							var userYear = inputValues[2];
							var userMonth = inputValues[0];
							var userDay = inputValues[1];
							
							var yearSelect = '<select id="input_year_' + elID + '" class="' + defaults.className + '" style="' + defaults.style + '">';
							yearSelect += '<option value="0">Year</option>';
							for(i = currentYear; i >=  currentYear - 110; i--){
								selYear =  (userYear == i) ? 'selected="selected"' : '';								
								yearSelect += '<option value="' + i + '" ' + selYear + '>' + i + '</option>';
							}
							yearSelect += '</select>';
							
							
							
							var monthSelect = '<select id="input_month_' + elID + '" class="' + defaults.className + '" style="' + defaults.style + '">';
							monthSelect += '<option value="0" selected="selected">Month</option>';
							for(i = 1; i<= 12; i++){
								if(i < 10){
									trailingZero = '0';
								}	else	{
									trailingZero = '';
								}
								selMonth =  (userMonth == i) ? 'selected="selected"' : '';								
								monthSelect += '<option value="' + trailingZero + i + '" ' + selMonth + '>' + trailingZero + i + '</option>';
								
							}
							monthSelect += '</select>';							
							
							
							var daySelect = '<select id="input_day_' + elID + '" class="' + defaults.className + '" style="' + defaults.style + '">';
							var selectedDay = parseInt($('#input_day_' + elID).val());
							var selectedMonth = parseInt($('#input_month_' + elID).val());
							var selectedYear = parseInt($('#input_year_' + elID).val());
														
							if(selectedMonth == 'NaN' || selectedYear == 'NaN'){
								var daysInMonth = 32 - new Date(selectedYear, selectedMonth, 32).getDate();								
							}	else	{
								
								var daysInMonth = 31;
							}
							
							daySelect += '<option value="0">Day</option>';
							
							for(i = 1; i<= daysInMonth; i++){
								
								if(i < 10){
									trailingZero = '0';
								}	else	{
									trailingZero = '';
								}
								if(userDay == i){
									var selDay = 'selected="selected"';
								}	else	{
									var selDay = '';
								}
								daySelect += '<option value="' + trailingZero + i + '"  ' + selDay + '>' + trailingZero + '' + i + '</option>';
							}
							daySelect += '</select>';
							$('#' + elID).empty()
									.append(monthSelect)
									.append(daySelect)
									.append(yearSelect);
									
									
							
							$('#input_month_' + elID).unbind('change').bind('change', (function(){
								
								var selectedDay = parseInt($('#input_day_' + elID).val());
								var selectedMonth = parseInt($('#input_month_' + elID).val());
								var selectedYear = parseInt($('#input_year_' + elID).val());
								
								var daySelect = '';
								if(selectedMonth != 'NaN' || selectedYear != 'NaN'){
									var daysInMonth = 32 - new Date(selectedYear, selectedMonth - 1, 32).getDate();									
								}	else	{
									var daysInMonth = 31;
								}
								
								daySelect = '<option value="0">Day</option>';
								for(i = 1; i<= daysInMonth; i++){
									if(i < 10){
										trailingZero = '0';
									}	else	{
										trailingZero = '';
									}
									
									if(selectedDay == i && selectedDay < daysInMonth){
										var selDay = 'selected="selected"';
									}	else	{
										var selDay = '';
									}
									daySelect += '<option value="' + trailingZero + i + '"  ' + selDay + '>' + trailingZero + '' + i + '</option>';									
								}
								$('#input_day_' + elID).empty().append(daySelect);
							}));
							
							break;
					};
					
					
					switch(inputType){
						case 'text':
						case 'select':
							$(this).hide();
							$(this).parent().append('<a title="Save" id="el' + elID + '" class="editCallback" href="javascript:void(0)">' + defaults.switchLabel + '</a>');
							$(this).parent().append('<a title="Cancel" style="padding-left: 30px" id="el' + elID + '" class="cancelCallback" href="javascript:void(0)">' + defaults.cancelLabel + '</a>');
						break;
						case 'date':
							$(this).hide();
							$(this).parent().append('<a title="Save" id="el' + elID + '" class="dateCallback" href="javascript:void(0)">' + defaults.switchLabel + '</a>');
							$(this).parent().append('<a title="Cancel" style="padding-left: 30px" id="el' + elID + '" class="cancelCallback" href="javascript:void(0)">' + defaults.cancelLabel + '</a>');
						break;
						case 'phone':
							$(this).hide();
							$(this).parent().append('<a title="Save" id="el' + elID + '" class="phoneCallback" href="javascript:void(0)">' + defaults.switchLabel + '</a>');
							$(this).parent().append('<a title="Cancel" style="padding-left: 25px" id="el' + elID + '" class="cancelCallback" href="javascript:void(0)">' + defaults.cancelLabel + '</a>');
						break;
						case 'vanity':							
							$(this).hide();
							$(this).parent().append('<a title="Save" id="el' + elID + '" class="vanityCallback" href="javascript:void(0)">' + defaults.switchLabel + '</a>');
							$(this).parent().append('<a title="Cancel" style="padding-left: 25px" id="el' + elID + '" class="cancelCallback" href="javascript:void(0)">' + defaults.cancelLabel + '</a>');
						break;
						case 'urlLink':							
							$(this).hide();
							$(this).parent().append('<a title="Save" id="el' + elID + '" class="urlCallback" href="javascript:void(0)">' + defaults.switchLabel + '</a>');
							$(this).parent().append('<a title="Cancel" style="padding-left: 25px" id="el' + elID + '" class="cancelCallback" href="javascript:void(0)">' + defaults.cancelLabel + '</a>');							
							break;
						case 'passwordConfirm':
							if(! defaults.passwordProtect){
								$(this).hide();
								$(this).parent().append('<a title="Save" id="el' + elID + '" class="passwordCallback" id="el' + elID + '" href="javascript:void(0)">' + defaults.switchLabel + '</a>');
								$(this).parent().append('<a title="Cancel" style="padding-left: 30px" id="el' + elID + '" class="cancelCallback" href="javascript:void(0)">' + defaults.cancelLabel + '</a>');
							}
						break;
					}
					$('.editCallback').unbind('click').click(function(){	
						element = $(this).attr('id').replace('el', '');
						eval(defaults.callback);
						
					});
					
					$('.vanityCallback').unbind('click').click(function(){						
						element = $(this).attr('id').replace('el', '');
						myAccount.saveVanity(element);
					});
					
					$('.urlCallback').unbind('click').click(function(){
						
						confirmation = true;
						
						if ( $('#' + elID + 'Message').length > 0 ){	
							messageValue = $('#' + elID + 'Message').val();		
							var currentValue = $('#input_' + elID).val();
							while( messageValue.indexOf('##CURRENT_VALUE##')  != -1) {
								messageValue = messageValue.replace('##CURRENT_VALUE##', currentValue);
							}
							confirmation = confirm(messageValue);
						}
						element = $(this).attr('id').replace('el', '');
						if (confirmation == true ) {							
							myAccount.saveVanity(element);
						}	else {
							$('#' + element).inputRestore();
						}
					});
					
					$('.dateCallback').unbind('click').click(function(){	
						element = $(this).attr('id').replace('el', '');	
						var selectedDay = $('#input_day_' + element).val();
						var selectedMonth = $('#input_month_' + element).val();
						var selectedYear = $('#input_year_' + element).val();
						var elValue = selectedMonth + dateSplitter + selectedDay  + dateSplitter	 + selectedYear;
						
						var cloneElement = '<input type="hidden" id="input_' + element + '" value="' + elValue + '" />';							
						$(this).parent().append(cloneElement);
						eval(defaults.callback);
						$('#input_' + element).remove();
					});
					
					$('.phoneCallback').unbind('click').click(function(){
						element = $(this).attr('id').replace('el', '');
						myAccount.savePhone(element);
					});
					
					$('.passwordCallback').unbind('click').click(function(){						
							if( $('#input_' + elID).val() != $('#input_' + elID + '_conf').val() ){
								if(ote.Setup.defaults.templateID == 24){
									myAccount.clearMessages();
								};
								error = defaults.errorString.replace('{message}', 'The password does not match with the confirmed one');
								error = error.replace('{errorID}', elID + 'error_conf');
								$('#' + elID + 'error_conf').remove();							
								$(defaults.errorHook).prepend(error);
							}	else	{
								element = $(this).attr('id').replace('el', '');
								
								if( $('#input_' + element).val() == '******'){								
									$('#' + element).inputRestore();
									error = defaults.errorString.replace('{message}', 'Password has not been updated');
									error = error.replace('{errorID}', elID + 'error_conf');
									$('#' + elID + 'error_conf').remove();							
									$(defaults.errorHook).prepend(error);
								}	else	{							
									eval(defaults.callback);
								}
							};					
					});
					
					$('.cancelCallback').unbind('click').click(function(){		
						element = $(this).attr('id').replace('el', '');
						$('#' + element).inputRestore();
					});					
					
				}	catch(e) {
					ote.Error.store(e); 
				}
				return false;
			});		
    });
 };
 
 $.fn.inputRestore = function(settings){
	 
	 return this.each(function(){
		 
		 var defaults = {	 				 			
		 			newval: ''		 			
		 		};
		 if( settings ) {
			 $.extend(defaults, settings);
		 }		
		
		 elID = $(this).attr('id');
		 var matchingTie = $('a[rev=' + elID + ']');
		 $(matchingTie).siblings().remove();
		 $(matchingTie).show();
		 
		 var originalText = $('#' + elID).data('initial');
		 var originalType = $('#' + elID).data('type');
		 
		 if( defaults.newval.length > 0 ) {			 
			 if($('#' + elID).data('type') == 'passwordConfirm'){
				 $(this).empty().text('******');
			 }	else	{				 
				 var elText = $('#' + elID).data('case') == 'upper' ? defaults.newval.toUpperCase() : defaults.newval;
				
				 if ( $('#' + elID).data('type') == 'urlLink') {					
					 var newlink = $('#' + elID + 'Protocol').val() + defaults.newval + '.' + $('#' + elID + 'Domain').val(); 
					 link = '<a href="'+ newlink + '">' + newlink + '</a>';
					 $('#' + elID + 'User').val(defaults.newval);
					 $(this).empty().html(link);
				 }	else	{
					 $(this).empty().text(elText);
				 }
				 
				 var userRelations = new Array();
				 userRelations[0] = 'user';
				 userRelations[1] = 'vanityName';
				 
				 for (i = 0; i<= userRelations.length; i++ ) {
					 var currentPointer = userRelations[i];
					 
					 if(elID == currentPointer) {
						 if($('#user').length > 0) {
							 $('#user').text(defaults.newval);
						 }
						 
						 if($('#vanityName').length > 0) {
							 $('#vanityName').text(defaults.newval);
						 }
						 
						 if($('#localURL').length > 0) {
							 var oldURL = $.trim($('#localURL').text());
							 var newURL = oldURL.replace(originalText, defaults.newval);
							 $('#localURL').text(newURL);
							 $('#localURL').attr('href', newURL);
						 }
					 }
					 					 
				 }
			 }
		 }	else	{
			 if ( $('#' + elID).data('type') == 'urlLink') {
				 link = '<a href="'+ originalText + '">' + originalText + '</a>';
				 $(this).empty().html(link);
			 }	else	{
				 $(this).empty().text(originalText);
			 }
		 }
	 });
 };
 
 
 $.fn.groupEdit = function (settings){
	 
	 var defaults = {
			 	classHandler: 'groupEditable',
	 			className: '',
	 			style: '',
	 			switchLabel: 'save',
	 			cancelLabel: 'cancel',
	 			callback: '',
	 			errorString: '<div style="display: block;" class="error-msg" id="{errorID}">{message}</div>',
	 			errorHook: '#report',
	 			validateUsps: false
	 		};
	 
	 if( settings ) {
		 $.extend(defaults, settings);
	 }
	 
	 return this.each(function(){
		 
		 $(this).unbind('click').click(function(){
			 $(this).hide();
			 $(this).parent().append('<a title="Save" id="el' + $(this).attr('rev') + 'save" class="editGroupCallback" >' + defaults.switchLabel + '</a>');
			 $(this).parent().append('<a title="Cancel" style="padding-left: 30px" id="el' + $(this).attr('rev') + 'cancel" class="cancelGroupCallback" >' + defaults.cancelLabel + '</a>');
			 $('.hiddenClass').show(); 
			 elClass = $(this).attr('class');
			 
			 $('.cancelGroupCallback').unbind('click').click(function(){
				 $('.' + defaults.classHandler).each(function(){
					 $(this).empty().text($(this).data('initial'));					 
				 });
				 myAccount.clearMessages();	
				 $('.' + elClass).siblings().remove();
				 $('.' + elClass).show();
			 });
			 
			 $('.editGroupCallback').unbind('click').click(function(){
				 var pushString = 'action=saveAddressGroup';
				 if(defaults.validateUsps == true) {
					 pushString += '&USPS=1';
				 }
				 $('.' + defaults.classHandler).each(function(){
					 key = $(this).attr('title');
					 value = $('#input_' + $(this).attr('id')).val();
					 pushString += '&' + key + '=' + value;
				 });
				 
				 $.post('/ajax/update_myaccount.php', pushString, function(r){
					 myAccount.clearMessages();
					 if(r.hasErrors == 1 && defaults.validateUsps){						 
						 if(r.response != ''){
							 
							 messageString = '<div style="display: block;" class="error-msg" id="error-box">' + r.response + '</div>';	
							 $(defaults.errorHook).prepend(messageString);
						 }	else	{							 
							 jsonData = eval( r.data );		
							
							 optionsString = '';
							 address1Val = '';
							 urbanization = '';
							 for(i = 0; i < jsonData.length; i++){
								var currentPointer = jsonData[i];							
								if ( ( undefined == currentPointer['Address2'] || currentPointer['Address2'].length == 0 ) ||
									 ( undefined == currentPointer['City'] || currentPointer['City'].length == 0 ) ||
									 ( undefined == currentPointer['State'] || currentPointer['State'] == 0 ) ||
									 ( undefined == currentPointer['Zip5'] || currentPointer['Zip5'] == 0 )									
									) {
									messageString = '<div style="display: block;" class="error-msg" id="error-box">There was a problem validating the data, please try again.</div>';	
									$(defaults.errorHook).prepend(messageString);
									return false;									
								}	else	{									
									urbanization = ( undefined == currentPointer['Urbanization'] ||  currentPointer['Urbanization'] .length == 0 ) ? '' : currentPointer['Urbanization'] + ", ";
									address1Val = ( undefined == currentPointer['Address1'] ||  currentPointer['Address1'].length == 0 ) ? '' : currentPointer['Address1'] + ", ";
									
									address1DisplayVal = ( undefined == currentPointer['Address1'] ||  currentPointer['Address1'].length == 0 ) ? '' : currentPointer['Address1'];
									urbanizationDisplayVal = ( undefined == currentPointer['Urbanization'] ||  currentPointer['Urbanization'] .length == 0 ) ? '' : currentPointer['Urbanization'];									
																		
									var insetRel = currentPointer['Address2'] + "|" + currentPointer['City'] + '|' + currentPointer['State'] + '|' + currentPointer['Zip5'] + "|" + address1DisplayVal +  "|" + urbanizationDisplayVal;
									optionsString += '<a class="storeData" rel="'+insetRel+'" style="cursor: pointer; color: black;"><input type="radio" />' + currentPointer['Address2'] +  ", " +  address1Val + urbanization + jsonData[i]['City'] + ', ' + jsonData[i]['State'] + ', ' + jsonData[i]['Zip5'] + '</a><br/>';
								}
								 
							 }
							
						
							 
							 formattedString = "<p>The following addresses match your input. Please select the right one.</p>";
							 formattedString += optionsString;
							 
							 messageString = '<div style="display: block; border: 1px solid #FFCC33; background-color: #FFFFCC" class="info-msg" id="error-box">' + formattedString + '</div>';
							
							 $(defaults.errorHook).prepend(messageString);
							 $('document').pngFix();
							 $('.storeData').each(function(){								 
								 $(this).unbind('click').click(function(){									 
									addressData = $(this).attr('rel').split('|');
									$('#input_address').val(addressData[0]);
									$('#input_city').val(addressData[1]);
									$('#input_state').val(addressData[2]);
									$('#input_zip').val(addressData[3]);
									if (addressData[4].length > 0 ) {
										$('#input_address2').val(addressData[4]);
									}
									else if (addressData[5].length > 0 ) {
										$('#input_address2').val(addressData[5]);
									}
									//save address line 2
									$('#eladdresssave').click();									 
								 });
							 });
							 
							
						 }
											 
					 }	else	{
						 if(r.hasErrors == 1) {
							 messageString = '<div style="display: block;" class="error-msg" id="error-box">' + r.response + '</div>';	
						 }	else	{
							 messageString = '<div style="display: block;" class="success-msg" id="success-box">' + r.response + '</div>';
							 $('.' + defaults.classHandler).each(function(){
								 var newValue = $('#input_' + $(this).attr('id')).val(); 
								 $(this).empty().text(newValue);
								 
								 if (newValue.length == 0 && $(this).attr('id') == 'address2') {
									 $(this).parent().parent().hide();									
					 			}
							 });							 
							 
							 $('.' + elClass).siblings().remove();
							 $('.' + elClass).show();				 
							 
							 $('.colorRow').filter(function(index) {										 
									if($(this).prev().attr('id').indexOf('report') !== -1) {
										if ($( this ).prev().css('display') == 'none') {
											prevID = $(this).prev().prev().attr('id');
										}	else	{
											prevID = $(this).prev().attr('id');
										}
										
										if( prevID == 'reportGreyRow' ) {
											$(this).attr('id', 'reportWhiteRow');
										}	else	{
											$(this).attr('id', 'reportGreyRow');
										}
									}	else	{
										$(this).attr('id', 'reportGreyRow');
									};
										
								 });
						 }
						 $(defaults.errorHook).prepend(messageString);
						 $('document').pngFix();
					 }
				 }, 'json');
				 
			 });
			 
			 $('.' + defaults.classHandler).each(function(){
				 
				 e = $(this);
				 
				 inputType = 'text';
				 $(this).data('type', inputType);
				 dataSource = false;
				 
				 var inputValue = $.trim($(this).text());
				 $(this).data('initial', inputValue);
				 
				 /** Get the type if set **/
				 if($('a[rel="' + $(this).attr('id') + '"]').length != 0){
					 $('a[rel="' + $(this).attr('id') + '"]').each(function(){
						switch($(this).attr('class')) {
							case 'fieldType':
								inputType = $.trim($(this).text());
								$(this).data('type', inputType);
								break;
							case 'datasource':
								dataSource = $.trim($(this).text());								
								break;
						}  
					 });
				 }				 
				 switch(inputType){
				 	case 'text':				
				 		var input = '<input type="text" id="input_' + $(this).attr('id') + '" value="' + inputValue + '" class="' + defaults.className + '" style="' + defaults.style + '" />';							
						$(this).empty().append(input);							
						break;
				 	case 'select':
				 		var selected = $(this);
				 		if(dataSource == false){
				 			throw new oteError('No datasource provided for element ' + $(this).attr('id'));
				 		}	else { 
				 			if(dataSource.indexOf('?') !== -1){
				 				dataParts = dataSource.split('?');
				 				var sourceUrl = dataParts[0];
				 				var params = dataParts[1];
				 			}	else	{
				 				var sourceUrl = dataSource;
				 				var params = '';
				 			}
				 			$.ajax({
					 			   type: "POST",
					 			   url: sourceUrl,
					 			   data: params,
					 			   success: function(r){
						 				if(r.result){						 				
						 					var input = '<select id="input_' + $(selected).attr('id') + '" class="' + defaults.className + '" style="' + defaults.style + '"></select>';
						 					$(selected).empty().append(input);						 	
						 					$('#input_' + $(selected).attr('id')).append(r.result);
						 				}	else	{
						 					throw new oteError('Errors in datasource request for select ' + $(this).attr('id'), 1);
						 				}					 			   },
					 			   error: function(r, status){
					 				  throw new oteError('Errors in datasource response for select ' + $(this).attr('id') + '. Resonse status: ' + status, 1);
					 			   },
					 			   dataType: 'json'
					 			 });				 			
				 		}
				 		break;
				}
				
			 });
		 });
	 });
 };
})(jQuery);
