/*---- dt tools v3.0.2 *//*
Written by: David Tsuji
Help: dt.flodge.com
Last Updated: Tuesday 09 Jan 2007 : 0807
*/

function dt_error() { try{window.status="Old browser software. Please upgrade."}catch(e){} }

/*---- dt.tools */
dt_toolbox = function() {
	browserDetection = function() {
		var agt = navigator.userAgent.toLowerCase();
		
		this._ie		=	agt.match(/msie(.*)?windows/)?true:false;
		this._safari	=	agt.match(/mac(.*)?safari/)?true:false;
		this._firefox	=	agt.match(/mozilla(.*)?firefox/)?true:false;
		this._mozilla	=	agt.match(/mozilla(.*)?gecko/)&&!this._firefox?true:false;
		this._os		=	agt.match(/windows/)?"win":agt.match(/macintosh/)?"mac":"other";
		this._version	=	this._ie?parseFloat(agt.match(/msie .../).toString().split(" ")[1]):
							this._firefox||this._safari?parseFloat(agt.match(/(firefox|safari)\/.../).toString().split("/")[1]):0;
		
	}
	this.browser = new browserDetection();
	this.attachEvent = function(obj, evt, func) {
		try {
			obj.attachEvent(evt,func);
		} catch(e) {
			try { obj.addEventListener(evt.split("on").join(""),func,false); }catch(e){dt_error();}
		}
	}
	this.detachEvent = function(obj, evt, func) {
		try {
			obj.detachEvent(evt, func);
		} catch(e) {
			try { obj.removeEventListener(evt.split("on").join(""),func,false); }catch(e){dt_error();}
		}
	}
	this.connect = function(url,my_form,func,dt_loading_anime) {
		var oargs = new Array(), xmlhttp, form_str="", field_type;
		
		(!dt_loading_anime) ? dt_loading_anime = "dt_loading_anime" : void(0);
		
		try { clearInterval(dt.connect.timeout_iid) } catch(e){}
		try { document.getElementsByName(dt_loading_anime)[0].style.visibility="visible" } catch(e){}
	
		// Collate and format form data if it exists
		if (my_form) {
			name_fn = function(f) {
				if (f.getAttribute("id")!="") return f.getAttribute("id");
				else return f.getAttribute("name");
			}
			ampersand_fn = function(i) { if (i<(my_form.length-1)) return "&"; else return "" }
			for (var i=0; i<my_form.length; i++) {
				try { field_type = my_form[i].type } catch(e){field_type="none"}
				switch (field_type.toLowerCase()) {
					case "checkbox":
						if (my_form[i].checked)
							form_str += name_fn(my_form[i]) + "=" + escape(my_form[i].value) + ampersand_fn(i);
					break;
					
					case "radio":
						if (my_form[i].checked)
							form_str += name_fn(my_form[i]) + "=" + escape(my_form[i].value) + ampersand_fn(i);
					break;
					
					default:
						form_str += name_fn(my_form[i]) + "=" + escape(my_form[i].value) + ampersand_fn(i);
					break;
				}
			}
		}

		try {
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(f) {
				try {
					xmlhttp = new XMLHttpRequest();
				} catch (g) {}
			}
		}

		done_fn = function() {
			var write_error_bln;
			hide_anime_fn = function() {try { document.getElementsByName(dt_loading_anime)[0].style.visibility="hidden" } catch(e) {}}
			if (xmlhttp.readyState==4) {
				clearInterval(dt.connect.timeout_iid);
				if (	xmlhttp.responseText.match(/Microsoft VBScript runtime error/)!=null ||
						xmlhttp.responseText.match(/runtime error/)!=null ||
						xmlhttp.responseText.match(/line \d/)!=null ||
						xmlhttp.responseText.match(/Variable is undefined/)!=null ||
						xmlhttp.responseText.match(/The page cannot be found/)!=null ||
						xmlhttp.responseText.match(/HTTP Error/)!=null ||
						xmlhttp.responseText.match(/ADODB.Recordset error/)!=null ||
						xmlhttp.responseText.match(/Microsoft JET Database Engine error/)!=null
						) write_error_bln = true;
				if (xmlhttp.status==200&&write_error_bln!=true) {
					hide_anime_fn();
					try { func(xmlhttp.responseText) } catch(e) {}
				} else {
						
					var shadow = dt.shadow.show(80);
					shadow.innerHTML = "<p align=\"center\"><span style=\"border:1px solid #000;margin-top:30px;padding:10px;width:500px;background-color:#FFFFFF\"><p style=\"font-size:20px;font-weight:bold\">server error</p>"+xmlhttp.responseText+"<p style=\"color:#FF0000;cursor:hand\" onclick=\"dt.shadow.hide()\">close</p></span></p>";
					
					hide_anime_fn();

				}
			}
		}

		try {
			window.attachEvent();
			xmlhttp.onreadystatechange = done_fn;
		} catch (e) {
			xmlhttp.onreadystatechange = function() {
				done_fn();
			}
		}
		
		//-- Fix cache
		var cache_id = new Date();
		cache_id = cache_id.getTime();
		url += (url.match("\\?")) ? "&cache_id=" + cache_id : "?cache_id=" + cache_id;
		//-- Fix cache
		
		if (my_form) {
			xmlhttp.open("POST",url,true);
			xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			xmlhttp.send(form_str);
		} else {
			xmlhttp.open("GET",url,true);
			xmlhttp.send(null);		
		}
		timeout_fn = function() {
			clearInterval(dt.connect.timeout_iid);
			window.status = "There was an error connecting to the server - try again in a few minutes";
		}
		dt.connect.timeout_iid = setInterval(timeout_fn, 20000);
	}
	this.xmlhttp = function(file_txt, form_el) { /*---- 200701081405 */
		
		/*---- declaration */
		window.xmlhttp_id = !window.xmlhttp_id?1:window.xmlhttp_id+=1;
		this._conn = {	xmlhttp:null,
						id:window.xmlhttp_id,
						timeout:20000,
						timeoutID:null,
						check:50,
						intervalID:null,
						types:new Array('MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP','Microsoft.XMLHTTP'),
						method:"GET",
						header:"application/x-www-form-urlencoded",
						postdata:null,
						state:null }

		this._file = (file_txt==undefined)?null:file_txt;
		this._form = (form_el==undefined)?"null":form_el;

		/*---- declaration */
		
		
		/*---- INIT */
		try {
			this._conn.xmlhttp = new XMLHttpRequest();
		} catch(e) {
			for(var i=0; i<this._conn.types.length; i++){
				try {
					this._conn.xmlhttp = new ActiveXObject(this._conn.types[i]);
					break;
				} catch(e){}
			}
		}
		/*---- INIT */
		
		
		/*---- callbacks */
		this.onComplete	= function(){}			
		this.onAbort	= function(){}
		this.onError	= function(){}
		/*---- callbacks */
		
		
		/*---- functions */
		this.abort = function(noEvent_bln) {
			
			//-- Check if the object is currently running, then abort it
			try {

				try { this._conn.xmlhttp.abort() }catch(e){}
				try {window.clearInterval(this._conn.intervalID) }catch(e){}
				delete this._conn.intervalID;
				delete this._conn.timeoutID;
				if (noEvent_bln!=true) this.onAbort();
					
			}catch(e){this.onError(this.getError(40))}

		}
		
		/*
		this.getForm is from Yahoo's "Connection Manager" setForm:function(formId, isUpload, secureUri)
		
		Copyright (c) 2006, Yahoo! Inc. All rights reserved.
		Code licensed under the BSD License:
		http://developer.yahoo.net/yui/license.txt
		Version: 0.11.3

		*/
		this.getForm = function(oForm) {
	
			var oElement, oName, oValue, oDisabled;
			var hasSubmit = false;
			var _sFormData = "";
	
			// Iterate over the form elements collection to construct the
			// label-value pairs.
			for (var i=0; i<oForm.elements.length; i++){
				oElement = oForm.elements[i];
				oDisabled = oForm.elements[i].disabled;
				oName = oForm.elements[i].name;
				oValue = oForm.elements[i].value;
	
				// Do not submit fields that are disabled or
				// do not have a name attribute value.
				if(!oDisabled && oName)
				{
					switch (oElement.type)
					{
						case 'select-one':
						case 'select-multiple':
							for(var j=0; j<oElement.options.length; j++){
								if(oElement.options[j].selected){
									if(window.ActiveXObject){
										_sFormData += encodeURIComponent(oName) + '=' + encodeURIComponent(oElement.options[j].attributes['value'].specified?oElement.options[j].value:oElement.options[j].text) + '&';
									}
									else{
										_sFormData += encodeURIComponent(oName) + '=' + encodeURIComponent(oElement.options[j].hasAttribute('value')?oElement.options[j].value:oElement.options[j].text) + '&';
									}
	
								}
							}
							break;
						case 'radio':
						case 'checkbox':
							if(oElement.checked){
								_sFormData += encodeURIComponent(oName) + '=' + encodeURIComponent(oValue) + '&';
							}
							break;
						case 'file':
							// stub case as XMLHttpRequest will only send the file path as a string.
						case undefined:
							// stub case for fieldset element which returns undefined.
						case 'reset':
							// stub case for input type reset button.
						case 'button':
							// stub case for input type button elements.
							break;
						case 'submit':
							if(hasSubmit == false){
								_sFormData += encodeURIComponent(oName) + '=' + encodeURIComponent(oValue) + '&';
								hasSubmit = true;
							}
							break;
						default:
							_sFormData += encodeURIComponent(oName) + '=' + encodeURIComponent(oValue) + '&';
							break;
					}
				}
			}

			_sFormData = _sFormData.substr(0, _sFormData.length - 1);
			
			return _sFormData;

		}
		this.handleResponse = function() {
			this.onComplete(this._conn.xmlhttp.responseText);
		}
		this.startListener = function() {

			var o = this;

			this._conn.timeoutID = window.setTimeout(function(){

				if (o._conn.timeoutID != undefined) {
					o.abort(true);
					o.onError(o.getError(12));
				}
				
			}, this._conn.timeout);
			
			this._conn.intervalID = window.setInterval(function(){
				
				try {

					if (o._conn.xmlhttp.readyState == 4 && o._conn.intervalID != undefined) {
						window.clearInterval(o._conn.intervalID);
						delete o._conn.intervalID;
						delete o._conn.timeoutID;
						o.handleResponse();
					}
					//} else o.onError(o.getError(13));
					
				}catch(e){o.onError(o.getError(30))}
														 
			}, this._conn.check);

		}
		this.getError = function(code_num) {
			var output_obj;
			switch (code_num.toString()) {
				case "10":
					output_obj = {code:code_num, description:"Error creating XMLHTTP object"};
				break;
				case "11":
					output_obj = {code:code_num, description:"Unknown error while trying to connect"};
				break;
				case "12":
					output_obj = {code:code_num, description:"A timeout occured"};
				break;
				case "13":
					output_obj = {code:code_num, description:"Connection error. Possibly a network error or a data transfer error."};
				break;
				case "20":
					output_obj = {code:code_num, description:"Error collating form data"};
				break;
				case "30":
					output_obj = {code:code_num, description:"Error checking the status of the connection"};
				break;
				case "40":
					output_obj = {code:code_num, description:"Error aborting the connection"};
				break;
				default:
					output_obj = {code:12222, description:"An unknown error occured"};
				break;
			}
			return output_obj;
		}
		/*---- functions */

		
		
		/*---- start connection */
		this.connect = function() {
			try {
				
				//-- If this object is already running, kill the running process
				try {
					this.abort(true);
				}catch(e){}
				
				//-- Append form data to the file
				try {
					
					this._form = (this._form!="null")?this._form:"null";
					
					if (this._form != "null") {
						if (this._form.nodeName.toLowerCase() == "form") {

							this._conn.postdata = this.getForm(this._form);
							this._conn.method = "POST";

						}
					}
					
				}catch(e){this.onError(this.getError(20))}
				
				try {
					
					//-- Fix cache
					var cache_id = new Date();
					cache_id = cache_id.getTime();
					this._file += (this._file.match("\\?")) ? "&cache_id=" + cache_id : "?cache_id=" + cache_id;
					//-- Fix cache

					this._conn.xmlhttp.open(this._conn.method, this._file, true);
					if (this._conn.method=="POST") this._conn.xmlhttp.setRequestHeader("Content-Type", this._conn.header);
					this.startListener();
					this._conn.xmlhttp.send(this._conn.postdata);
				
				}catch(e){this.onError(this.getError(10))}

			}catch(e){this.onError(this.getError(11))}

		}
		/*---- start connection */
		
	}
	this.shadow = function(){} /*---- 200701090800 */
	this.shadow.show = function(opacity_num) {
		/*
		[WRITTEN]	JSA DIGITAL (David Tsuji) | www.jsa.com.au
		[VERSION]	1.0.0 CREATE SHADOW
		*/
		
		var o, opacity_arr = new Array("00","11","22","33","44","55","66","77","88","99","A1","A9","B1","B9","C1","C9","D1","D9","E1","FF");
		
		opacity_num = (parseFloat(opacity_num)) ? opacity_num : 90;
		
		try { dt.shadow.hide() } catch(e) {}
		
		try {
			for (var i=0; i<document.getElementsByTagName("SELECT").length; i++) {
				s = document.getElementsByTagName("SELECT")[i];
				s.style.display = "none";
			}
		} catch(e) {}
		
		try {
			/*document.body.insertAdjacentHTML("afterBegin", ""+
			"<div id=\"dtshadow_div\" name=\"dtshadow_div\" onclick=\"null\" style=\"z-index:9999;position:absolute;filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr='#"+opacity_arr[Math.round(opacity_num/5)]+"000000', EndColorStr='#"+opacity_arr[Math.round(opacity_num/5)]+"000000');opacity:"+(opacity_num/100)+";-moz-opacity:"+(opacity_num/100)+";\">"+
			"</div>");*/
			$(document.body).prepend("<div id=\"dtshadow_div\" name=\"dtshadow_div\" onclick=\"null\" style=\"z-index:9999;position:absolute;filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr='#"+opacity_arr[Math.round(opacity_num/5)]+"000000', EndColorStr='#"+opacity_arr[Math.round(opacity_num/5)]+"000000');opacity:"+(opacity_num/100)+";-moz-opacity:"+(opacity_num/100)+";\"></div>");

			o = document.getElementById("dtshadow_div");
			try {
				with (o.style) {
					backgroundColor="#000000";
					filter="alpha(opacity="+(opacity_num)+")";
				}
			} catch(e) {}
			
			reset_shadow_pos = function() {
				var db = document.body;
				try {
					var o = document.getElementById("dtshadow_div");
					o.style.width	= db.clientWidth;
					o.style.height	= db.clientHeight;
					o.style.left	= db.scrollLeft;
					o.style.top		= db.scrollTop;
				}catch(e){}
			}

			// OnMove Events
			o.style.backgroundImage = "url(images/filler.gif)";
			dt.attachEvent(window, "onresize", reset_shadow_pos);
			dt.attachEvent(window, "onscroll", reset_shadow_pos);
			reset_shadow_pos();
			o.style.height = document.body.clientHeight;
			o.style.width = document.body.clientWidth;
			return o;
		} catch(e) {}
	}
	this.shadow.hide = function() {
		var s;
		try {
			dt.detachEvent(window, "onresize", reset_shadow_pos);
			dt.detachEvent(window, "onscroll", reset_shadow_pos);
		}catch(e){}
		try {
			document.getElementById("dtshadow_div").removeNode(true);
		} catch(e) {
			try {
				document.getElementById("dtshadow_div").parentNode.removeChild(document.getElementById("dtshadow_div"));	
			}catch(e){}
		}
		try {
			for (var i=0; i<document.getElementsByTagName("SELECT").length; i++) {
				s = document.getElementsByTagName("SELECT")[i];
				s.style.display = "inline";
			}
		} catch(e) {}
	}
	this.rollovers = function() {
		for (var i=0;(img=document.images[i]);i++) {
			try {
				if (location.href.match(img.getAttribute("stickonurl"))) {
					img.src = img.getAttribute("stickimg")?img.getAttribute("stickimg"):img.getAttribute("rollover");
				}
			}catch(e){}
			if (img.getAttribute("rollover")&&img.done_bln!=true) {
				img.o=new Image();
				img.n=new Image();
				img.o.src = img.getAttribute("rollover");
				img.n.src = img.src;
				img.done_bln = true;
				over_fn = function() {
					var o;
					try {
						o = event.srcElement;
					} catch(e) { o=this };
					o.src = o.o.src;
				}
				out_fn = function() {
					var o;
					try {
						o = event.srcElement;
					} catch(e) {
						o = this;
					};
					o.src = o.n.src;
				}
				dt.attachEvent(img, "onmouseover", over_fn);
				dt.attachEvent(img, "onmouseout", out_fn);
			}
		}
	}
	this.flash = function(_file, _id, _width, _height, _bgcolor, _requiredversion) {
		
		this._version		= deconcept.SWFObjectUtil.getPlayerVersion().major;
		this._installed		= (this._version>0);

		this._file				= _file;
		this._width				= _width;
		this._height			= _height;
		this._requiredversion	= _requiredversion==undefined&&!parseFloat(_requiredversion)?this._version:parseFloat(_requiredversion);
		this._id				= (_id==undefined||_id=="")?"el"+new Date().getTime():_id;
		this._bgcolor			= _bgcolor;
		this._noflash			= "";
		this._values			= new Array();
		this._settings			= new Array();
		
		this.add = function(_var, _val) {
			this._values.push([_var, _val]);
		}
		
		this.set = function(_var, _val) {
			this._settings.push([_var, _val]);
		}

		this.attach = function(_el) {
			this._el = _el;
			
			if (this._file && this._id && this._el && this._width && this._height) {
				
				if (this._bgcolor == "transparent") this.set("wmode", "transparent");
				
				try { // Trying to write the flash content
					var so = new SWFObject(this._file, this._id, this._width, this._height, this._requiredversion, this._bgcolor);
					try { for (var i=0; i<this._values.length; i++) so.addVariable(this._values[i][0], this._values[i][1]) }catch(e){}
					try { for (var i=0; i<this._settings.length; i++) so.addParam(this._settings[i][0], this._settings[i][1]) }catch(e){}
					so.write(_el);
				}catch(e){}
				try { // Trying to write the non-flash content
					if (this._version < this._requiredversion) document.getElementById(this._el).innerHTML=this._noflash;
				}catch(e){}

			} else alert("An error occured constructing the flash object (possibly missing a required parameter or a parameter was the wrong type)");
		}

	}
	this.validate_beta = function(_form) {
		
		var text_re		= /^(?!^\s+$).+$/;
		var postcode_re	= /^[0-9]{4}$/;
		var email_re	= /^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
		var number_re	= /^[0-9\.\-]+$/;
		var date_re		= /^(3{1}[0-1]{1}|[0-2]{1}[1-9]{1})\/(1{1}[0-2]{1}|0{1}[1-9]{1})\/[0-9]{4}$/;
		var phone_re	= /^0[0-9]{9}$/;
		var ip_re		= /^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
		var url_re		= /^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
		var password_re	= /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).*$/;
		var visa_re		= /^4\d{3}-?\d{4}-?\d{4}-?\d{4}$/;
		var mc_re		= /^5[1-5]\d{2}-?\d{4}-?\d{4}-?\d{4}$/;
		var amex_re		= /^3[4,7]\d{13}$/;
		var diners_re	= /^3[0,6,8]\d{12}$/;
		
		this._alert = true;
		this._style = true;
		this._errorstyle = "border-color:#FF0000;color:#FF0000";
		this._originalstyle = "border-color:inherit;color:inherit";
		this._title = "Please correct the following fields:";
		this._form = _form;
		this.el_arr = [];
		
		this.add = function(add_arr){
			try {
			
				for (var i=0; i<add_arr.length; i++) {
					switch(typeof add_arr[i]) {
						case "string":
							if (add_arr[i].split(",").length != 3) throw "error";
							if (eval("this._form."+add_arr[i].split(",")[0]+".value==undefined")) throw "error";
							this.el_arr.push({	field:eval("this._form."+add_arr[i].split(",")[0]),
												validate:add_arr[i].split(",")[1],
												message:add_arr[i].split(",")[2],
												cssclass:{original:"",error:""}	});
						break;
						
						case "object":
							if (add_arr[i].field == undefined || add_arr[i].validate == undefined || add_arr[i].message == undefined) throw "error";
							if (eval("this._form."+add_arr[i].field+".value==undefined")) throw "error";
							if (!add_arr[i].cssclass) add_arr[i].cssclass = {original:"",error:""};
							add_arr[i].field = eval("this._form."+add_arr[i].field);
							this.el_arr.push(add_arr[i]);
							
						break;
						
						default:
							throw "error";
						break;
					}
					switch(this.el_arr[this.el_arr.length-1].validate) {
						case "date":
							var tempdate_txt = this.el_arr[this.el_arr.length-1].field.value;
							if (tempdate_txt.split("/").length==3) {
								if (tempdate_txt.split("/")[0].length==1 && parseFloat(tempdate_txt.split("/")[0]))
									tempdate_txt = "0"+tempdate_txt;
									
								if (tempdate_txt.split("/")[1].length==1 && parseFloat(tempdate_txt.split("/")[1]))
									tempdate_txt = tempdate_txt.split("/")[0]+"/0"+tempdate_txt.split("/")[1]+"/"+tempdate_txt.split("/")[2];
								
								this.el_arr[this.el_arr.length-1].field.value = tempdate_txt;

							}
						break;
					}
				}
				
			}catch(e){alert('An error occurred adding fields to the validate object')}
		};
		
		this.remove = function(_txt) {
			try {
				var found_num;
				for (var i=0; i<this.el_arr.length; i++) {
					if (this.el_arr[i].field.getAttribute("id") == _txt) {
						found_num = i;
						break;
					}
				}
				this.el_arr.splice(found_num, 1);
			}catch(e){alert('An error occured removing a field from the validate object')}
		}
		
		this.addstyle = function(_el) {
			if (this._style && this._errorstyle) {
				_el.field.setAttribute("dtvalidateerror", "true");
				_el.cssclass.error = _el.cssclass.error==""?this._errorstyle:_el.cssclass.error;
				if (_el.cssclass.error.match(/:/)) {
					_el.field.style.cssText = _el.cssclass.error;
				} else {
					_el.field.className = _el.cssclass.error;
				}
			}
		}
		
		this.removestyle = function(_el) {
			if (this._style && this._originalstyle && _el.field.getAttribute("dtvalidateerror") == "true") {
				_el.field.setAttribute("dtvalidateerror", "");
				_el.cssclass.original = _el.cssclass.original==""?this._originalstyle:_el.cssclass.original;
				if (_el.cssclass.original.match(/:/)) {
					_el.field.style.cssText = _el.cssclass.original;
				} else {
					_el.field.className = _el.cssclass.original;
				}
			}
		}
	
		this.validate = function() {
			var fields_arr = [];
			var _date, _re, error_txt = "";
			
			try {
				for (var i=0; i<this.el_arr.length; i++) {
				
					this.removestyle(this.el_arr[i]);
					
					switch(typeof this.el_arr[i].validate) {
						case "string":
							
							try { _re = eval(this.el_arr[i].validate+"_re") }catch(e){ _re = this.el_arr[i].validate }

							_re = new RegExp(_re);
						
							if (!this.el_arr[i].field.value.toString().match(_re)) {
								error_txt += "- "+this.el_arr[i].message+"\n";
								this.addstyle(this.el_arr[i]);
								
							} else {
								switch(this.el_arr[i].validate) {
									case "date":
										_date = this.el_arr[i].field.value;
										_date = new Date(_date.split("/")[2], parseFloat(_date.split("/")[1])-1, _date.split("/")[0]);

										_date =	(_date.getDate()<10?"0":"")+_date.getDate()+"/"+
												((_date.getMonth()+1)<10?"0":"")+(_date.getMonth()+1)+"/"+
												_date.getFullYear();
										
										if (this.el_arr[i].field.value != _date) {
											error_txt += "- "+this.el_arr[i].message+"\n";
											this.addstyle(this.el_arr[i]);
										}

									break;
									
								}
							}
						break;
						
						case "function":
							if (!this.el_arr[i].validate(this._form)) {
								error_txt += "- "+this.el_arr[i].message+"\n";
								this.addstyle(this.el_arr[i]);
							}
						break;
						
						default:
							throw "error";
						break;
					}
				}
				
				if (error_txt != "") {
					error_txt = this._title+":\n\n"+error_txt;
					if (this._alert == true) alert(error_txt);
					try{ this.onInvalid() }catch(e){};
				} else {
					try {
						this.onValid();
					}catch(e){
						if (confirm("Do you want to submit the form")) this._form.submit();
					}
				}
				
			}catch(e) {
				switch(e) {
					case "error":
						alert('An error occurred trying to validate the form');
					break;
					default:
						alert('An error occurred trying to validate the form.');
					break;
				}
			}
			
		}
	}
	this.alert = function() { /*---- 200701090800 */
		this.alert.autohide_iid = null;
	}
	this.alert.hide = function() {
		try { var o = document.getElementsByName("dt_alert_holder")[0] } catch(e){}
		try {
			dt.detachEvent(window, "onscroll", fix_dtAlert_pos_fn);
			dt.detachEvent(window, "onresize", fix_dtAlert_pos_fn);
			o.innerHTML = "";
		}catch(e){}
		try { clearInterval(dt.alert.autohide_iid); }catch(e){}
		try {
			o.removeNode(true);
		} catch(e) {
			try {o.parentNode.removeChild(o); }catch(e){}
		}
	}
	this.alert.show = function(msg, time) {
		
		try {
			
			time = (!time)?9999:time;
			
			try { clearInterval(dt.alert.autohide_iid); }catch(e){}
			
			try {
				dt.alert.autohide_iid = setInterval("dt.alert.hide()", parseFloat(time)*1000);
			}catch(e){}
			
			var o_holder, o_content_tbl, o_content;
			
			if (document.getElementsByName("dt_alert_holder").length == 0) {
				/*document.body.insertAdjacentHTML("afterBegin", "<div id=\"dt_alert_holder\" name=\"dt_alert_holder\" style=\"position:absolute;z-index:99999\"><table id=\"dt_alert_bar\" name=\"dt_alert_bar\"><tr><td name=\"dt_alert_content\" id=\"dt_alert_content\"></td><td width=1%><input type=button value=close onclick=dt.alert.hide()></td></tr></table><table style=\"width:100%;height:20px;filter:progid:DXImageTransform.Microsoft.gradient(enabled='true',startColorstr=#99000000, endColorstr=#00000000)\"><tr><td>&nbsp;</td></tr></table></div>");*/
				$(document.body).prepend("<div id=\"dt_alert_holder\" name=\"dt_alert_holder\" style=\"position:absolute;z-index:99999\"><table id=\"dt_alert_bar\" name=\"dt_alert_bar\"><tr><td name=\"dt_alert_content\" id=\"dt_alert_content\"></td><td width=1%><input type=button value=close onclick=dt.alert.hide()></td></tr></table><table style=\"width:100%;height:20px;filter:progid:DXImageTransform.Microsoft.gradient(enabled='true',startColorstr=#99000000, endColorstr=#00000000)\"><tr><td>&nbsp;</td></tr></table></div>");
			}
	
			try {
				o_holder		= document.getElementsByName("dt_alert_holder")[0];
				o_content_tbl	= document.getElementsByName("dt_alert_bar")[0];
				o_content		= document.getElementsByName("dt_alert_content")[0];
		
				o_holder.style.left = "0px";
				o_holder.style.top = "0px";
		
				o_content_tbl.style.borderBottom = "1px solid #EFB539";
				o_content_tbl.style.width = "100%";
				o_content_tbl.style.backgroundColor = "#FFF993";
				o_content_tbl.style.filter = "progid:DXImageTransform.Microsoft.gradient(enabled='true',startColorstr=#FFFFFFAA, endColorstr=#FFFFD16C)";
		
				o_content.style.color = "#000000";
				o_content.style.padding = "10px";
						
				o_content.innerHTML = msg;
				
				o_holder.style.top		= document.body.scrollTop - o_holder.offsetHeight;
			}catch(e){}
			
			fix_dtAlert_pos_fn = function(top_bln) {
				try {
					var o = document.getElementsByName("dt_alert_holder")[0];
					o.style.left	= document.body.scrollLeft;
					o.style.width	= "100%";
					if (top_bln==true)	dt.tween(o_holder, "style.top", "", "this.offsetTop", "document.body.scrollTop", .3);
					else				o.style.top		= document.body.scrollTop;
				}catch(e){}
			}
			fix_dtAlert_pos_fn(true);
			
			try {
				dt.attachEvent(window, "onscroll", fix_dtAlert_pos_fn);
				dt.attachEvent(window, "onresize", fix_dtAlert_pos_fn);
			}catch(e){}
			
		} catch(e){alert(msg);}
	}
	this.tween = function(o, property, easingType, start, end, seconds) {
		try {clearInterval(o.tween.iid) }catch(e){ o.tween = new Object() }
		fn = function() {
			moveto = function(t, b, c, d) {
				if ((t/=d/2) < 1) return c/2*t*t + b;
				return -c/2 * ((--t)*(t-2) - 1) + b;
			}
			try {
				eval("o."+property+" = moveto(o.tween.t, o.tween.b, o.tween.c, o.tween.d)");
				o.tween.t += 10;
				if (o.tween.t > o.tween.d) clearInterval(o.tween.iid);
			}catch(e){ try{clearInterval(o.tween.iid)}catch(e){} }
		}
		o.tween.t = 0;
		o.tween.b = parseFloat(eval(start.toString().split("this").join("o")));
		o.tween.c = parseFloat(eval(end.toString().split("this").join("o")))-parseFloat(eval(start.split("this").join("o")));
		o.tween.d = seconds*1000;
		o.tween.iid = setInterval(fn, 10);
	}

}
var dt = new dt_toolbox();
/*---- dt.tools */

/*---- INIT IMAGE ROLLOVERS */
// Written by: David Tsuji
// Date: Thu 25 August 2005 : 1743
dt.attachEvent(window,"onload", dt.rollovers);
/*---- INIT IMAGE ROLLOVERS */


/*---- THIRD-PARTY */
/**
 * SWFObject v1.4.4: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
 *
 * SWFObject is (c) 2006 Geoff Stearns and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 *
 * **SWFObject is the SWF embed script formerly known as FlashObject. The name was changed for
 *   legal reasons.
 */
if(typeof deconcept=="undefined"){var deconcept=new Object();}
if(typeof deconcept.util=="undefined"){deconcept.util=new Object();}
if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil=new Object();}
deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a,_b){if(!document.getElementById){return;}
this.DETECT_KEY=_b?_b:"detectflash";
this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);
this.params=new Object();
this.variables=new Object();
this.attributes=new Array();
if(_1){this.setAttribute("swf",_1);}
if(id){this.setAttribute("id",id);}
if(w){this.setAttribute("width",w);}
if(h){this.setAttribute("height",h);}
if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));}
this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion();
if(c){this.addParam("bgcolor",c);}
var q=_8?_8:"high";
this.addParam("quality",q);
this.setAttribute("useExpressInstall",_7);
this.setAttribute("doExpressInstall",false);
var _d=(_9)?_9:window.location;
this.setAttribute("xiRedirectUrl",_d);
this.setAttribute("redirectUrl","");
if(_a){this.setAttribute("redirectUrl",_a);}};
deconcept.SWFObject.prototype={setAttribute:function(_e,_f){
this.attributes[_e]=_f;
},getAttribute:function(_10){
return this.attributes[_10];
},addParam:function(_11,_12){
this.params[_11]=_12;
},getParams:function(){
return this.params;
},addVariable:function(_13,_14){
this.variables[_13]=_14;
},getVariable:function(_15){
return this.variables[_15];
},getVariables:function(){
return this.variables;
},getVariablePairs:function(){
var _16=new Array();
var key;
var _18=this.getVariables();
for(key in _18){_16.push(key+"="+_18[key]);}
return _16;},getSWFHTML:function(){var _19="";
if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){
if(this.getAttribute("doExpressInstall")){
this.addVariable("MMplayerType","PlugIn");}
_19="<embed type=\"application/x-shockwave-flash\" src=\""+this.getAttribute("swf")+"\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\"";
_19+=" id=\""+this.getAttribute("id")+"\" name=\""+this.getAttribute("id")+"\" ";
var _1a=this.getParams();
for(var key in _1a){_19+=[key]+"=\""+_1a[key]+"\" ";}
var _1c=this.getVariablePairs().join("&");
if(_1c.length>0){_19+="flashvars=\""+_1c+"\"";}_19+="/>";
}else{if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");}
_19="<object id=\""+this.getAttribute("id")+"\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\">";
_19+="<param name=\"movie\" value=\""+this.getAttribute("swf")+"\" />";
var _1d=this.getParams();
for(var key in _1d){_19+="<param name=\""+key+"\" value=\""+_1d[key]+"\" />";}
var _1f=this.getVariablePairs().join("&");
if(_1f.length>0){_19+="<param name=\"flashvars\" value=\""+_1f+"\" />";}_19+="</object>";}
return _19;
},write:function(_20){
if(this.getAttribute("useExpressInstall")){
var _21=new deconcept.PlayerVersion([6,0,65]);
if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){
this.setAttribute("doExpressInstall",true);
this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));
document.title=document.title.slice(0,47)+" - Flash Player Installation";
this.addVariable("MMdoctitle",document.title);}}
if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){
var n=(typeof _20=="string")?document.getElementById(_20):_20;
n.innerHTML=this.getSWFHTML();return true;
}else{if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}}
return false;}};
deconcept.SWFObjectUtil.getPlayerVersion=function(){
var _23=new deconcept.PlayerVersion([0,0,0]);
if(navigator.plugins&&navigator.mimeTypes.length){
var x=navigator.plugins["Shockwave Flash"];
if(x&&x.description){_23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}
}else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}
catch(e){try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
_23=new deconcept.PlayerVersion([6,0,21]);axo.AllowScriptAccess="always";}
catch(e){if(_23.major==6){return _23;}}try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");}
catch(e){}}if(axo!=null){_23=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}}
return _23;};
deconcept.PlayerVersion=function(_27){
this.major=_27[0]!=null?parseInt(_27[0]):0;
this.minor=_27[1]!=null?parseInt(_27[1]):0;
this.rev=_27[2]!=null?parseInt(_27[2]):0;
};
deconcept.PlayerVersion.prototype.versionIsValid=function(fv){
if(this.major<fv.major){return false;}
if(this.major>fv.major){return true;}
if(this.minor<fv.minor){return false;}
if(this.minor>fv.minor){return true;}
if(this.rev<fv.rev){
return false;
}return true;};
deconcept.util={getRequestParameter:function(_29){
var q=document.location.search||document.location.hash;
if(q){var _2b=q.substring(1).split("&");
for(var i=0;i<_2b.length;i++){
if(_2b[i].substring(0,_2b[i].indexOf("="))==_29){
return _2b[i].substring((_2b[i].indexOf("=")+1));}}}
return "";}};
deconcept.SWFObjectUtil.cleanupSWFs=function(){if(window.opera||!document.all){return;}
var _2d=document.getElementsByTagName("OBJECT");
for(var i=0;i<_2d.length;i++){_2d[i].style.display="none";for(var x in _2d[i]){
if(typeof _2d[i][x]=="function"){_2d[i][x]=function(){};}}}};
deconcept.SWFObjectUtil.prepUnload=function(){__flash_unloadHandler=function(){};
__flash_savedUnloadHandler=function(){};
if(typeof window.onunload=="function"){
var _30=window.onunload;
window.onunload=function(){
deconcept.SWFObjectUtil.cleanupSWFs();_30();};
}else{window.onunload=deconcept.SWFObjectUtil.cleanupSWFs;}};
if(typeof window.onbeforeunload=="function"){
var oldBeforeUnload=window.onbeforeunload;
window.onbeforeunload=function(){
deconcept.SWFObjectUtil.prepUnload();
oldBeforeUnload();};
}else{window.onbeforeunload=deconcept.SWFObjectUtil.prepUnload;}
if(Array.prototype.push==null){
Array.prototype.push=function(_31){
this[this.length]=_31;
return this.length;};}
var getQueryParamValue=deconcept.util.getRequestParameter;
var FlashObject=deconcept.SWFObject;
var SWFObject=deconcept.SWFObject;
/* ---- */

