/**
 *	SearchTypeToggler - V1.00.310506 - May 31 2006
 *	---------------------------------------------
 *  Author - Jeroen vd Goorbergh
 *  Depends on: EventHandler.js, component C78 (jobsearch)
 *  
 */

var SearchTypeToggler = {
		hRE:/^h[2-9]$/i,
		aRE:/^a$/i,
		formRE:/^form$/i,
		toggleRE:/ ?\btoggle\b/i,
		extendedRE:/ ?\bextended\b/i,
		openRE:/ ?\bopen\b/i,
		init: function(form1, form2, syncform) {
			this.form1 = form1;
			this.form2 = form2;
			this.syncForm = syncform;
			if (typeof(this.handlers) == 'undefined') this.handlers = new Array();
			this.handlers[this.handlers.length]= addEventHandler(this.form1, "click", function(e) {
				SearchTypeToggler.clickHandler(e);
			});
			this.handlers[this.handlers.length]= addEventHandler(this.form2, "click", function(e) {
				SearchTypeToggler.clickHandler(e);
			});		
		},
		clickHandler: function(e) {
			var e = e||event;
			if(e.shiftKey || e.ctrlKey || e.altKey) return true;
			var target = e.target||e.srcElement;
			while (!target.nodeName || target.nodeType == 3) target = target.parentNode;
			if (target.nodeName && this.hRE.test(target.nodeName)) {
				var form = target;
				while (form!=null && !this.formRE.test(form.nodeName) && !this.toggleRE.test(form.className)) form = form.parentNode;
				if (form!=null && this.formRE.test(form.nodeName) && this.toggleRE.test(form.className)) {
					SearchTypeToggler.toggleForm(form);
					cancelEvent(e);
				}
			}
			else if (target.nodeName && this.aRE.test(target.nodeName) && this.toggleRE.test(target.rel)) {
				var form = target;
				while (form!=null && !this.formRE.test(form.nodeName) && !this.toggleRE.test(form.className)) form = form.parentNode;
				if (form!=null && this.formRE.test(form.nodeName) && this.toggleRE.test(form.className)) {
					SearchTypeToggler.toggleExtended(form);
					cancelEvent(e);
				}
			} else return true;
		},
		toggleForm: function(form) {
			if (this.openRE.test(form.className)) {
				form.className = form.className.replace(this.openRE, "");
			} else {
				form.className += " open";
				this.syncForm.elements['form'].value = form.id;
			}
		},
		toggleExtended: function(form) {		
			if (this.extendedRE.test(form.className)) {
				form.className = form.className.replace(this.extendedRE, "");
				form.elements['extended'].value = "false";
				this.syncForm.elements['extended'].value = "false";
			}
			else {
				form.className += " extended";
				form.elements['extended'].value = "true";
				this.syncForm.elements['extended'].value = "true";
			}		
		}			
};