2006/unicorn/WebContent/scripts w3c_unicorn_results.js,NONE,1.1.2.1 w3c_unicorn_index.js,NONE,1.1.2.1 w3c-validator.js,1.1.2.12,NONE

Update of /sources/public/2006/unicorn/WebContent/scripts
In directory hutz:/tmp/cvs-serv6481/WebContent/scripts

Added Files:
      Tag: dev2
	w3c_unicorn_results.js w3c_unicorn_index.js 
Removed Files:
      Tag: dev2
	w3c-validator.js 
Log Message:
renamed index script and added a result script

--- NEW FILE: w3c_unicorn_results.js ---
var W3C = {
	
	start: function() {
		
		W3C.Observers = $$('div.observer');
		
		W3C.Observers.each(function(observer) {
			observer.getElement('h2').addEvent('click', function(event) {
				observer.getElement('div.results').slide('toggle');
			});
		});
		
		$$('div.observer.valid').getElement('div.results').slide('hide');
	}
	
};

window.addEvent('domready', W3C.start);


--- w3c-validator.js DELETED ---

--- NEW FILE: w3c_unicorn_index.js ---
var W3C = {
	
	start: function(){
		
		W3C.Tabs = $('tabset_tabs');
		W3C.TabLinks = W3C.Tabs.getChildren('li a');
		
		W3C.TaskSelect = $('tasks');
		W3C.TaskOptions = W3C.TaskSelect.getChildren('option');
		W3C.TaskDescrip = $('task_descrip');
		W3C.TaskInputs = $$('input.task');
		
		W3C.LangParameter = $$('input.lang')[0].value;
		W3C.Forms = $$('form[action=observe]');
		
		// index of selected tab
		W3C.SelectedTab = 0;
		// index of selected task
		W3C.SelectedTask = W3C.TaskOptions.getProperty('value').indexOf(W3C.TaskInputs[0].value);
		// boolean: expand options
		W3C.WithOptions = false;
		
		W3C.Loader = new Element('img', {'src': 'images/ajax-loader.gif', 'class': 'loader'});
		W3C.prepareDocument();
		W3C.parseHash();
		W3C.updateHash();
		
		W3C.showTab(W3C.SelectedTab, false);
		W3C.selectTask(W3C.SelectedTask, false);
		W3C.toggleOptions(false);
		W3C.addOptionEvents();
		
		console.log(W3C.isUrl("http://www.w3.org"));
		console.log(W3C.isUrl("http://jigsaw.w3.org/css-validator/validator?uri=www.w3.org&profile=css3&usermedium=all&warning=1&lang=fr&output=ucn"));
		console.log(W3C.isUrl("http://localhost:8080/unicorn_dev/#validate-by-uri+task_full-css+with_options"));
		console.log(W3C.isUrl("http://www.%w3.org/TR/CSS21/colors.html#propdef-color"));
		console.log(W3C.isUrl("/w3.org"));
		console.log(W3C.isUrl("www.w3.org"));
	},
	
	prepareDocument: function(){
		
		$$('input#task_change').setStyle('display', 'none');
		
		W3C.TaskSelect.addEvent('change', function (event) {
			event.stop();
			W3C.selectTask(this.selectedIndex, true);
			W3C.updateHash();
		});
		
		W3C.TabLinks.each(function(link, i) {
			link.addEvent('click', function (event) {
				event.stop();
				W3C.showTab(i, true);
				W3C.updateHash();
			});
		});
		
		W3C.TaskOptions.addEvent('mouseover', function() {
			W3C.TaskDescrip.set('text', this.title);
		});
		
		W3C.TaskOptions.addEvent('mouseout', function() {
			W3C.TaskDescrip.set('text', W3C.TaskOptions[W3C.SelectedTask].title);
		});
		
	},
	
	addOptionEvents: function () {
		$$('fieldset.advanced legend').removeEvent('click');
		
		$$('fieldset.advanced legend').addEvent('click', function (event) {
			W3C.WithOptions = !W3C.WithOptions;
			W3C.toggleOptions(true);
			W3C.updateHash();
		});
	},
	
	showTab: function(tabIndex, withFX) {
		if (W3C.Tabs.getElements('li')[tabIndex] == W3C.Tabs.getElement('li.selected'))
			return;
		
		W3C.SelectedTab = tabIndex;
		W3C.Forms.each(function(form, i) {
			if (i != tabIndex) {
				form.setStyle('display', 'none');
			} else {
				if (withFX)
					form.setStyle('opacity', 0);
				form.setStyle('display', 'block');
			}
		});
		W3C.TabLinks.each(function(link, i) {
			if (i != tabIndex) {
				link.setProperty('class', '');
			} else {
				link.setProperty('class', 'selected');
			}
		});
		
		W3C.toggleOptions(false);
		
		if (withFX) {
			W3C.Forms[tabIndex].set('tween', {'duration': 350});
			W3C.Forms[tabIndex].tween('opacity', 0, 1);
		}
	},
	
	selectTask: function(taskIndex, withFX) {
		W3C.SelectedTask = taskIndex;
		var options = $$('fieldset.options');
		var taskId;
		
		W3C.TaskOptions.each(function(option, i) {
			if (i != taskIndex) {
				option.removeProperty('selected');
			} else {
				taskId = option.value;
				option.setProperty('selected', 'selected');
			}
		});
		W3C.TaskDescrip.set('text', W3C.TaskOptions[taskIndex].title);
		
		W3C.TaskInputs.each(function (input) {
			input.value = taskId;
		});
		
		var options = $$('fieldset.options');
		options.setStyle('display', 'none');
		
		options.getElements('.option_input').each(function (input) {
			input.setProperty('disabled', 'disabled');
		});
		
		var currentOptions = options.filter('fieldset.' + taskId);
		
		if (!currentOptions.length > 0)
			W3C.requestOptions(taskIndex, withFX);
		else {
			currentOptions.getElements('.option_input').each(function (input) {
				input.removeProperty('disabled');
			});
			currentOptions.setStyle('opacity', 0);
			currentOptions.setStyle('display', 'block');
			if (withFX) {
				currentOptions.set('tween', {'duration': 350});
				currentOptions.tween('opacity', 0, 1);
			}
			currentOptions.setStyle('opacity', 1);
		}
		
		W3C.toggleOptions(false);
	},
	
	requestOptions: function(taskIndex, withFX) {
		
		var req = new Request.HTML({url: window.location.pathname,
			method: 'get',
			onRequest: function() {
				W3C.Loader.injectBefore(W3C.Forms[W3C.SelectedTab].getElement('div.submit'));
			},
			onSuccess: function(responseTree, responseElements, responseHTML, responseJavaScript) {
				var option;
				responseElements.filter('fieldset.options').each(function(fieldset) {
					W3C.Forms.each(function (form, i) {
						var clone = fieldset.clone();
						clone.setStyle('opacity', 0);
						clone.injectBefore(form.getElement('div.submit'));
						if (withFX) {
							clone.set('tween', {'duration': 350});
							clone.tween('opacity', 0, 1);
						}
						clone.setStyle('opacity', 1);
					});
				});
				W3C.Loader.dispose();
				W3C.toggleOptions(false);
				W3C.addOptionEvents();
				return true;
			},
			onFailure: function() {
				// TODO
				return false;
			}
		});
		var queryString = 'ucn_task=' + W3C.TaskOptions[taskIndex].value + '&ucn_lang=' + W3C.LangParameter; 
		req.send(queryString);
	},
	
	toggleOptions: function(withFX) {
		var fieldsets = $$('fieldset.advanced');
		if (fieldsets.length == 0)
			return;
		
		if (W3C.WithOptions) {
			fieldsets.addClass('toggled');
			fieldsets.removeClass('toggles');
		}
		else {
			fieldsets.addClass('toggles');
			fieldsets.removeClass('toggled');
		}
		
		W3C.Forms.each(function (form, i) {
			
			var advancedOptions = form.getElements('fieldset.advanced div.options');
			
			if (withFX && i == W3C.SelectedTab) {
				if (W3C.WithOptions) {
					advancedOptions.slide('in');
				} else {
					advancedOptions.slide('out');
				}
			} else {
				if (W3C.WithOptions) {
					advancedOptions.slide('show');
				} else {
					advancedOptions.slide('hide');
				}
			}
		});
	},
	
	parseHash: function(){
		
		var hash = window.location.hash;
		
		if (hash == "") {
			return;
		}
		
		var tab = hash.replace('#', '').split('+');
		var selectedTab = tab[0];
		var selectedTask = tab[1];
		var withOptions = tab[2];
		
		// get selected tab
		var index = W3C.Forms.getProperty('id').indexOf(selectedTab);
		if (index == -1) {
			W3C.setHash('');
			return;
		}
		W3C.SelectedTab = index;
		
		// get selected task
		if (!selectedTask || !selectedTask.contains("task_")) {
			W3C.setHash(selectedTab);
			return;
		}
		var taskIndex =  W3C.TaskOptions.getProperty('value').indexOf(selectedTask.replace('task_', ''));
		if (taskIndex == -1) {
			W3C.setHash(selectedTab);
			return;
		}
		W3C.SelectedTask = taskIndex;
		
		// with_options ?
		if (!withOptions || !withOptions == "with_options") {
			W3C.setHash(selectedTab + "+" + selectedTask);
			return;
		}
		W3C.WithOptions = true;
	},
	
	updateHash: function(){
		var tab = W3C.Forms[W3C.SelectedTab].getProperty('id');
		var task = '+task_' + W3C.TaskOptions[W3C.SelectedTask].getProperty('value');
		var withOptions = W3C.WithOptions ? '+with_options' : '';
				
		W3C.setHash(tab + task + withOptions);
	},
	
	setHash: function(hash){
		if (window.webkit419){
			W3C.FakeForm = W3C.FakeForm || new Element('form', {'method': 'get'}).injectInside(document.body);
			W3C.FakeForm.setProperty('action', '#' + hash).submit();
		} else {
			window.location.hash = hash;
		}
	},
	
	isUrl: function(url){
		return	url.test(".*");
	}
	
};

window.addEvent('domready', W3C.start);

Received on Friday, 28 August 2009 09:05:35 UTC