/************************************************************
 * css class name (used by form validation below)
 */

var className = {
	has: function (el, cn) {
		if (!el || typeof cn != 'string') {
			return false;
		}
		return (el.className && el.className.search && el.className.search(new RegExp('\\b' + cn + '\\b')) != -1);
	},

	add: function (el, cn) {
		if (!el || typeof cn != 'string') {
			return false;
		}
		if (!className.has(el, cn)) {
			el.className += ' ' + cn;
		}
		return true;
	},

	remove: function (el, cn) {
		var c;
		if (!el || typeof cn != 'string') {
			return false;
		}
		if (className.has(el, cn)) {
			c = el.className.replace(new RegExp('\\b' + cn + '\\b'), '');
			c = c.replace(/^ +| +$/g, ''); /* is all this */
			c = c.replace(/ {2,}/g, ' ');  /* necessary?  */
			el.className = c;
		}
		return true;
	},

	toggle: function (el, cn) {
		if (!el || typeof cn != 'string') {
			return false;
		}
		if (hasClass(el, cn)) {
			removeClass(el, cn);
		}
		else {
			addClass(el, cn);
		}
		return true;
	},

	getElementsByClassName: function (root, tag, cn) {
		var list = new Array();
		var l = 0;
		var els, i;
		if (!root || !tag || typeof cn != 'string') {
			return null;
		}
		els = root.getElementsByTagName(tag);
		for (i = els.length - 1; i >= 0; i--) {
			if (className.has(els[i], cn)) {
				list[l++] = els[i];
			}
		}
		return list.reverse();
	}
};



/************************************************************
 * form validation
 */

/* this is a subset from formValidation.js */
var formValidation = {
	init: function (form, labelClassOnError, onSuccess) {
		var errorHandler = this.errorHandler;
		var idToLabel = new Object();
		var els, vals, i, j;
		if (!form || typeof labelClassOnError != 'string') {
			return;
		}
		els = form.getElementsByTagName('label');
		for (i = els.length - 1; i >= 0; i--) {
			if (els[i].htmlFor) {
				idToLabel[els[i].htmlFor] = els[i];
			}
		}
		els = form.elements;
		for (i = els.length - 1; i >= 0; i--) {
			vals = els[i].validators;
			if (vals) {
				for (j = vals.length - 1; j >= 0; j--) {
					vals[j].errorHandler = errorHandler;
				}
			}
		}
		form.idToLabel = idToLabel;
		form.labelClassOnError = labelClassOnError;
		form.onSuccess = onSuccess;
		form.onsubmit = this.performValidation;
	},

	uninit: function (form) {
		var els, vals, i, j;
		if (!form) {
			return;
		}
		this.resetLabels(form);
		/*els = form.elements;
		for (i = els.length - 1; i >= 0; i--) {
			vals = els[i].validators;
			if (vals) {
				for (j = vals.length - 1; j >= 0; j--) {
					vals[j].errorHandler = null;
				}
			}
		}
		form.idToLabel = form.labelClassOnError = form.errorMessages = form.onSuccess = form.onsubmit = null;
		*/
	},

	getHighlightLabels: function (el, obj) {
		var labels = new Array();
		var l = 0;
		var idToLabel = el.form.idToLabel;
		var thing = (obj.highlightId) ? obj.highlightId : el.id;
		var ids = new Array();
		var highlightEl, i;
		if (typeof thing == 'function') {
			ids = thing();
		}
		else if (typeof thing == 'string') {
			ids = [thing];
		}
		else if (thing && thing.length > 0) {
			ids = thing;
		}
		for (i = 0; i < ids.length; i++) {
			highlightEl = idToLabel[ids[i]];
			if (highlightEl) {
				labels[l++] = highlightEl;
			}
		}
		return labels;
	},

	errorHandler: function (el) {
		var form = el.form;
		var labels = formValidation.getHighlightLabels(el, this);
		var cn = form.labelClassOnError;
		var i;
		for (i = labels.length - 1; i >= 0; i--) {
			className.add(labels[i], cn);
		}
		$('.error_msg', form).show();
		if (!form.errEl && !form.errObj) {
			form.errEl = el;
			form.errObj = this;
		}
	},

	resetLabels: function (form) {
		var idToLabel = form.idToLabel;
		var cn = form.labelClassOnError;
		var id;
		for (id in idToLabel) {
			className.remove(idToLabel[id], cn);
		}
		form.errEl = form.errObj = null;
	},
	
	performValidation: function () {
		var els = this.elements;
		var result = true;
		var el, vals, i, j;
		formValidation.resetLabels(this);
		$('.error_msg', this).hide();
		for (i = els.length - 1; i >= 0; i--) {
			el = els[i];
			vals = el.validators;
			if (vals) {
				for (j = vals.length - 1; j >= 0; j--) {
					if (vals[j].reset) {
						vals[j].reset(el);
					}
				}
			}
			el.performValidation = true;
		}
		for (i = 0; i < els.length; i++) {
			el = els[i];
			vals = el.validators;
			if (vals) {
				for (j = 0; j < vals.length; j++) {
					if (el.performValidation && !vals[j].validator(el)) {
						if (vals[j].errorHandler) {
							vals[j].errorHandler(el);
						}
						result = false;
					}
				}
			}
		}
		//formValidation.showErrorAlert(this);
		if (result && this.onSuccess) {
			this.onSuccess();
		}
		return result;
	},


	getFieldValue: function (el) {
		var result = '';
		if (el.nodeName) {
			switch (el.nodeName) {
			case 'INPUT':
			case 'TEXTAREA':
				if (el.type == 'checkbox' || el.type == 'radio') {
					if (el.checked) {
						result = 'checked';
					}
				}
				else {
					result = el.value;
				}
				break;
			case 'SELECT':
				if ((el.ignoreFirstOption && el.selectedIndex > 0) || (!el.ignoreFirstOption && el.selectedIndex >= 0)) {
					result = el.options[el.selectedIndex].value;
				}
				break;
			}
		}
		else if (typeof el == 'string') { 
			result = el;
		}
		return result.replace(/(^\s+|\s+$)/g, '');
	},
	
	dateValidator: function (el) {
		var d, given;

		/* rather than apply rules manually, let's just have javascript do the work for us */
		d = formValidation.dateExtractor(this);
		d.month -= 1; /* user entered value/select starts at 1 */
		given = new Date(d.year, d.month, d.day);

		return (given.getDate() == d.day && given.getMonth() == d.month && given.getFullYear() == d.year);
	},

	dateExtractor: function (obj, prefix) {
		var result = new Object();

		if (typeof prefix != 'string') {
			prefix = '';
		}

		result.day = (obj[prefix + 'day']) ? parseInt(formValidation.getFieldValue(obj[prefix + 'day']), 10) : -1;
		result.month = (obj[prefix + 'month']) ? parseInt(formValidation.getFieldValue(obj[prefix + 'month']), 10) : -1;
		result.year = (obj[prefix + 'year']) ? parseInt(formValidation.getFieldValue(obj[prefix + 'year']), 10) : -1;
		return result;
	},
	dateInPastValidator: function (el) {
		var givenDay, givenMonth, givenYear;
		var currentDay, currentMonth, currentYear;
		var deltaDay, deltaMonth, deltaYear;
		var given, current, d;

		d = formValidation.dateExtractor(this);
		givenDay = d.day;
		givenMonth = d.month - 1; /* user entered value/select starts at 1 */
		givenYear = d.year;
		if (d.day == -1) {
			givenDay = 1; /* first day of month */
		}

		d = formValidation.dateExtractor(this, 'current');
		currentDay = d.day;
		currentMonth = d.month -1;
		currentYear = d.year;
		if (d.day == -1) {
			currentMonth++; /* add a month */
			currentDay = 0; /* subtract a day = last day of month */
		}
		deltaDay = (this.deltaDay) ? this.deltaDay : 0;
		deltaMonth = (this.deltaMonth) ? this.deltaMonth : 0;
		deltaYear = (this.deltaYear) ? this.deltaYear : 0;
		given = new Date(givenYear + deltaYear, givenMonth + deltaMonth, givenDay + deltaDay);
		//given = new Date(givenYear, givenMonth, givenDay);
		current = new Date(currentYear, currentMonth, currentDay);
		return (given < current);
	},
	
	dateInPastAllowSameValidator: function (el) {
		var givenDay, givenMonth, givenYear;
		var currentDay, currentMonth, currentYear;
		var deltaDay, deltaMonth, deltaYear;
		var given, current, d;

		d = formValidation.dateExtractor(this);
		givenDay = d.day;
		givenMonth = d.month - 1; /* user entered value/select starts at 1 */
		givenYear = d.year;
		if (d.day == -1) {
			givenDay = 1; /* first day of month */
		}

		d = formValidation.dateExtractor(this, 'current');
		currentDay = d.day;
		currentMonth = d.month -1;
		currentYear = d.year;
		if (d.day == -1) {
			currentMonth++; /* add a month */
			currentDay = 0; /* subtract a day = last day of month */
		}
		deltaDay = (this.deltaDay) ? this.deltaDay : 0;
		deltaMonth = (this.deltaMonth) ? this.deltaMonth : 0;
		deltaYear = (this.deltaYear) ? this.deltaYear : 0;
		given = new Date(givenYear + deltaYear, givenMonth + deltaMonth, givenDay + deltaDay);
		//given = new Date(givenYear, givenMonth, givenDay);
		current = new Date(currentYear, currentMonth, currentDay);
		return (given <= current);
	},
	
	notBlankValidator: function (el) {
		return (formValidation.getFieldValue(el).length > 0);
	},

	characterRangeValidator: function (el) {
		
	var characterRanges = {
		symbol1: ['0021', '002F'],
		symbol2: ['003A', '0040'],
		symbol3: ['005B', '0060'],
		symbol4: ['007B', '007E'],
		numAlphSymb: ['0021', '007E'],
		spacing: ['000A','000D'],
		upper: ['0041', '005A'], /* A-Z */
		lower: ['0061', '007A'], /* a-z */
		digit: ['0030', '0039'], /* 0-9 */
		cjkUnifiedIdeographs: ['4E00', '9FBF'],
		cjkUnifiedIdeographsExtensionA: ['3400', '4DBF'],
		cjkUnifiedIdeographsExtensionB: ['20000', '2A6DF'],
		cjkCompabilityIdeographs: ['F900', 'FAFF'],
		cjkCompabilityIdeographsSupplement: ['2F800', '2FA1F'],
		kanbun: ['3190', '319F'],
		cjkRadicalsSupplement: ['2E80', '2EFF'],
		kangxiRadicals: ['2F00', '2FDF'],
		cjkStrokes: ['31C0', '31EF'],
		bopomofo: ['3100', '312F'],
		bopomofoExtended: ['31A0', '31BF'],
		cjkSymbolsAndPunctuation: ['3000', '303F'],
		halfwidthAndFullwidthForms: ['FF00', 'FFEF'],
		verticalForms: ['FE10', 'FE1F']
	};
	for (var i in characterRanges) {
		characterRanges[i][0] = parseInt(characterRanges[i][0], 16);
		characterRanges[i][1] = parseInt(characterRanges[i][1], 16);
	}
		/*
		var value = formValidation.getFieldValue(el);
		var ranges = this.ranges;
		var min = new Array();
		var max = new Array();
		var isValid, i, j, c;

		if (typeof this.symbols == 'string') {
			value = stripSymbols(value, this.symbols);
		}
		for (i = ranges.length - 1; i >= 0; i--) {
			j = ranges[i];
			
			if (typeof j == 'string') {
				min[i] = characterRanges[j][0];
				max[i] = characterRanges[j][1];
			}
			else if (j instanceof Array) {
				min[i] = j[0];
				max[i] = j[1];
			}
		}

		for (i = value.length - 1; i >= 0; i--) {
			c = value.charCodeAt(i);
			isValid = false;
			for (j = min.length - 1; j >= 0; j--) {
				if (c >= min[j] && c <= max[j]) {
					isValid = true;
					break;
				}
			}
			if (!isValid) {
				return false;
			}
		}
		return true;
		*/
		
		
		
		
		var value = formValidation.getFieldValue(el);
		var ranges = this.ranges;
		var min = new Array();
		var max = new Array();
		var isValid, i, j, c;

		if (typeof this.symbols == 'string') {
			value = stripSymbols(value, this.symbols);
		}

		for (i = ranges.length - 1; i >= 0; i--) {
			j = ranges[i];
			if (typeof j == 'string') {
				min[i] = characterRanges[j][0];
				max[i] = characterRanges[j][1];
			}
			else if (j instanceof Array) {
				min[i] = j[0];
				max[i] = j[1];
			}
		}

		for (i = value.length - 1; i >= 0; i--) {
			c = value.charCodeAt(i);
			isValid = false;
			for (j = min.length - 1; j >= 0; j--) {
				if (c >= min[j] && c <= max[j]) {
					isValid = true;
					break;
				}
			}
			if (!isValid) {
				return false;
			}
		}
		return true;
		
	},

	lengthValidator: function (el) {
		var len = formValidation.getFieldValue(el).length;
		var ranges = this.ranges;
		var min, max, i;

		for (i = ranges.length - 1; i >= 0; i--) {
			min = ranges[i][0];
			max = ranges[i][1];
			if (len >= min && len <= max) {
				return true;
			}
		}
		return false;
	},

	emailLocalValidator: function (el) {
		return (formValidation.getFieldValue(el).search(/[^\w+.-]/) == -1);
	},
	
	numOnlyValidator: function (el) {
		return (formValidation.getFieldValue(el).search(/\D/) == -1);
	},
	numGreaterThanZero: function (el) {
		if ((parseInt(formValidation.getFieldValue(el))) < 1){
			return false;
		}
		else {
			return true;
		}
	},
		
	optionSelectedValidator: function(el) {
		return (el.selectedIndex > 0);
	},
		
	domainValidator: function (el) {
		var labels = formValidation.getFieldValue(el).replace(/\.$/, '').split('.');
		var i;
		if (labels.length < 2) {
			return false;
		}
		for (i = labels.length - 1; i >= 0; i--) {
			if (labels[i].search(/^[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?$/) == -1) {
				return false;
			}
		}
		return true;
	},

	emailValidator: function (el) {
		var email = formValidation.getFieldValue(el);
		var atpos = email.indexOf('@');
		var local, domain;
		if (atpos > -1) {
			local = email.substring(0, atpos);
			domain = email.substring(atpos + 1);
			return (formValidation.emailLocalValidator(local) && formValidation.domainValidator(domain));
		}
		return false;
	},
	
	specificOthersActivator: function (el) {
	//vars[0]: dropdown, vars[1]: dropdown value, vars[2]: input box
		var vars = this.vars;
		var otherField = vars[2];
		
		if(document.getElementById(vars[0]).value == vars[1] && (!formValidation.getFieldValue(otherField).length > 0)) {
			return false;
		} else {
			return true;
		}
	},
	
	firstNotBlankGroupActivator: function (el) {
		var getFieldValue = formValidation.getFieldValue;
		var groups = this.groups;
		var activated = -1;
		var group, i, j;
		for (i = 0; i < groups.length; i++) {
			group = groups[i];
			for (j = group.length - 1; j >= 0; j--) {
				if (getFieldValue(group[j]).length > 0) {
					activated = i;
					break;
				}
			}
			if (activated != -1) {
				break;
			}
		}
		for (i = groups.length - 1; i >= 0; i--) {
			group = groups[i];
			for (j = group.length - 1; j >= 0; j--) {
				group[j].performValidation = (i == activated);
			}
		}
		return (activated != -1);
	},

	allOrNoneActivator: function (el) {
		var getFieldValue = formValidation.getFieldValue;
		var fields = this.fields;
		var activated = false;
		var i;
		for (i = fields.length - 1; i >= 0; i--) {
			if (getFieldValue(fields[i]).length > 0) {
				activated = true;
				break;
			}
		}
		for (i = fields.length - 1; i >= 0; i--) {
			fields[i].performValidation = activated;
		}
		return true;
	},
	
	NAllOrNoneActivator: function (el) {
		var getFieldValue = formValidation.getFieldValue;
		var fields = this.fields;
		var activated = true;
		var i;
		for (i = fields.length - 1; i >= 0; i--) {
			if (getFieldValue(fields[i]).length > 0) {
				activated = false;
				break;
			}
		}
		for (i = fields.length - 1; i >= 0; i--) {
			fields[i].performValidation = activated;
		}
		return true;
	}
};

function stripSymbols(str, symbols) {
	var i, j, c;
	for (i = symbols.length - 1; i >= 0; i--) {
		c = symbols.charAt(i);
		while ((j = str.indexOf(c)) > -1) {
			str = str.substring(0, j) + str.substring(j + 1);
		}
	}
	return str;
}



/************************************************************
 * image button
 */

jlib._imageButtonClick = function () {
	var form = this.form;
	var result;
	if (form) {
		switch (this.type) {
		case 'submit':
			if (form.onsubmit) {
				result = form.onsubmit();
			}
			if (result !== false) {
				form.submit();
			}
			break;
		case 'reset':
			form.reset();
			break;
		}
	}
	return false;
};

jlib.imageButtonInit = function (root) {
	var _imageButtonClick, els, input, type, a, img, i;
	if (!root) {
		return;
	}
	_imageButtonClick = jlib._imageButtonClick;
	els = root.getElementsByTagName('input');
	for (i = els.length - 1; i >= 0; i--) {
		input = els[i];
		type = input.type.toLowerCase();
		if ((type == 'submit' || type == 'reset') && input.src) {
			a = document.createElement('a');
			a.href = '#';
			a.form = input.form;
			a.type = type;
			a.className = 'button';
			a.onclick = _imageButtonClick;
			img = document.createElement('img');
			img.src = input.src;
			img.alt = input.value;
			img.className = input.className;
			a.appendChild(img);
			a.input = input;
			input.style.position = 'absolute';
			input.style.left = '-5000px';
			input.style.top = '-5000px';
			input.parentNode.insertBefore(a, input);
		}
	}
};


jlib.imageButtonUninit = function (root) {
	var els, a, input, i;
	if (!root) {
		return;
	}
	els = root.getElementsByTagName('a');
	for (i = els.length - 1; i >= 0; i--) {
		a = els[i];
		if (a.input) {
			input = a.input;
			input.parentNode.removeChild(a);
			a.onclick = null;
			a.form = null;
			a.input = null;
			input.style.position = '';
			input.style.left = '';
			input.style.top = '';
		}
	}
};



/************************************************************
 * clickable labels
 */

jlib._labelHandler = function () {
	var field = this.field;
	var action;
	switch (field.nodeName) {
		case 'INPUT':
			switch (field.type) {
				case 'text':
				case 'password':
					action = 'focus';
					break;

				case 'checkbox':
				case 'radio':
					action = 'click';
					break;
			}
			break;

		case 'SELECT':
		case 'TEXTAREA':
			action = 'focus';
			break;
	}
	if (action && field[action] && !field.disabled) {
		field[action]();
		return false;
	}
	return true;
};

jlib.labelInit = function (root) {
	var _labelHandler, els, label, field, i;
	if (!root) {
		return;
	}
	_labelHandler = jlib._labelHandler;
	els = root.getElementsByTagName('label');
	for (i = els.length - 1; i >= 0; i--) {
		label = els[i];
		if (label.htmlFor) {
			field = document.getElementById(label.htmlFor);
			if (field) {
				label.style.cursor = 'default';
				label.field = field;
				label.onclick = _labelHandler;
			}
		}
	}
};

jlib.labelUninit = function (root) {
	var els, label, i;
	if (!root) {
		return;
	}
	els = root.getElementsByTagName('label');
	for (i = els.length - 1; i >= 0; i--) {
		label = els[i];
		if (label.field) {
			label.field = null;
			label.onclick = null;
		}
	}
};



/************************************************************
 * contact form init
 */

jlib._switchFormChange = function (e) {
	var curForm = document.getElementById('contact_form_' + (this.selectedIndex + 1 + (this.selectedIndex < 4 ? 0 : 1)));
	var i;
	for (i = 1; i<= 6; i++) {
		if (i == 5) {
			continue;
		}
		document.getElementById('contact_form_' + i).style.display = 'none';
	}
	curForm.style.display = 'block';
	curForm.reset();
	if (curForm.elements[0] && curForm.elements[0].focus) {
		curForm.elements[0].focus();
	}
};

jlib._contactUsReset = function () {
	$('.error_msg', this).hide();
	$('select', this).resetselectbox();
	formValidation.resetLabels(this);
};
jlib.formUninitHandler = function () {	
	var curFormIndex = document.getElementById('select_contact_form_selection').selectedIndex + 1;
	document.getElementById('contact_form_' + curFormIndex).reset();
};
jlib._displayOtherSpecify = function () {
	var input_id = this.id + '_others';
	document.getElementById(input_id).style.display = (this.value == 'others') ? 'block' : 'none';
	jlib._forceRedraw();
};

jlib.contactUsInit = function () {
	var lang = ((location.href.indexOf('/tc/') > -1) || (location.href.indexOf('/sc/') > -1)) ? 'chi' : 'en';
	var chiCharSet = '';
	if (lang == 'chi') {
		chiCharSet = 'cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement','cjkRadicalsSupplement','kangxiRadicals','cjkStrokes','cjkSymbolsAndPunctuation','halfwidthAndFullwidthForms','verticalForms';
	}
	var selector = document.getElementById('select_contact_form_selection');
	var frm1 = document.getElementById('contact_form_1');
	var frm2 = document.getElementById('contact_form_2');
	var frm3 = document.getElementById('contact_form_3');
	var frm4 = document.getElementById('contact_form_4');
	//var frm5 = document.getElementById('contact_form_5');
	var frm6 = document.getElementById('contact_form_6');
	var frms = [frm1, frm2, frm3, frm4, frm6]; //[frm1, frm2, frm3, frm4, frm5, frm6];
	var todayDay = document.getElementById('todayDay');
	var todayMonth = document.getElementById('todayMonth');
	var todayYear = document.getElementById('todayYear');
	var preSelectFormIndex, prevHref, today, options, selects, pos, i;

	// set selector change handler
	selector.onchange = jlib._switchFormChange;

	// set forms reset handler
	for (i = 0; i < frms.length; i++) {
		frms[i].onreset = jlib._contactUsReset;
	}

	// set display other handler
	frm6.frm6converage_section.onchange = jlib._displayOtherSpecify;
	frm6.frm6region.onchange = jlib._displayOtherSpecify;

	// pre-select form
	preSelectFormIndex = 0;
	prevHref = document.referrer;
	if (prevHref.indexOf('/mall/events/') > -1) {
		preSelectFormIndex = 1;
	} else if (prevHref.indexOf('/hong-kong-apartments/') > -1) {
		preSelectFormIndex = 2;
	} else if (prevHref.indexOf('/hong-kong-offices/') > -1) {
		preSelectFormIndex = 3;
	} else if (prevHref.indexOf('/hong-kong-conference-venues/') > -1) {
		preSelectFormIndex = 4;
	}
	selector.selectedIndex = preSelectFormIndex;

	// hide all except selected form
	// doing this later for ie6, otherwise non-selected forms stay hidden when shown
	setTimeout(function () {
			var frm = frms[preSelectFormIndex];
			for (i = 0; i < frms.length; i++) {
				frms[i].style.display = 'none';
			}
			frm.style.display = 'block';
			if (frm.elements[0] && frm.elements[0].focus) {
				frm.elements[0].focus();
			}
		}, 0);

	// fill hidden fields with current date for date validations below
	today = new Date();
	todayDay.value = today.getDate();
	todayMonth.value = today.getMonth() + 1;
	todayYear.value = today.getFullYear();

	var ddWidth_frm4industry = (lang == "en") ? 580 : 300;
	//var ddWidth_frm5booking_time = (lang == "en") ? 207 : 190;

	// set up nice dropdown menus
	if (lang == "en") {
		options = {
			//select_contact_form_selection: { selectboxWidth: "298", listboxMaxSize: "6" },
			select_contact_form_selection: { selectboxWidth: "298", listboxMaxSize: "5" },

			frm1country: { selectboxWidth: "164", listboxMaxSize: "6" },

			frm2country:       { selectboxWidth: "164", listboxMaxSize: "6" },
			frm2area_intested: { selectboxWidth: "197", listboxMaxSize: "4" },

			frm3country:         { selectboxWidth: "164", listboxMaxSize: "6" },
			frm3arrival_year:    { selectboxWidth:  "50", listboxMaxSize: "3" },
			frm3arrival_month:   { selectboxWidth:  "87", listboxMaxSize: "6" },
			frm3arrival_day:     { selectboxWidth:  "40", listboxMaxSize: "6" },
			frm3departure_year:  { selectboxWidth:  "50", listboxMaxSize: "3" },
			frm3departure_month: { selectboxWidth:  "87", listboxMaxSize: "6" },
			frm3departure_day:   { selectboxWidth:  "40", listboxMaxSize: "6" },

			frm4country:               { selectboxWidth: "164", listboxMaxSize: "6" },
			frm4industry:              { selectboxWidth: "164", listboxMaxSize: "9", dropdownWidth: ddWidth_frm4industry },
			frm4posession_from_year:   { selectboxWidth:  "50", listboxMaxSize: "3" },
			frm4posession_from_month:  { selectboxWidth:  "87", listboxMaxSize: "6" },
			frm4posession_from_day:    { selectboxWidth:  "41", listboxMaxSize: "6" },
			frm4posession_until_year:  { selectboxWidth:  "50", listboxMaxSize: "3" },
			frm4posession_until_month: { selectboxWidth:  "87", listboxMaxSize: "6" },
			frm4posession_until_day:   { selectboxWidth:  "41", listboxMaxSize: "6" },

			/*
			frm5country:            { selectboxWidth: "164", listboxMaxSize: "6" },
			frm5event_start_year:   { selectboxWidth:  "50", listboxMaxSize: "3" },
			frm5event_start_month:  { selectboxWidth:  "87", listboxMaxSize: "6" },
			frm5event_start_day:    { selectboxWidth:  "41", listboxMaxSize: "6" },
			frm5event_finish_year:  { selectboxWidth:  "50", listboxMaxSize: "3" },
			frm5event_finish_month: { selectboxWidth:  "87", listboxMaxSize: "6" },
			frm5event_finish_day:   { selectboxWidth:  "41", listboxMaxSize: "6" },
			frm5booking_time:       { selectboxWidth: "190", listboxMaxSize: "4", dropdownWidth: ddWidth_frm5booking_time },
			frm5event_nature:       { selectboxWidth: "190", listboxMaxSize: "6" },
			*/

			frm6country:           { selectboxWidth: "164", listboxMaxSize: "6" },
			frm6converage_section: { selectboxWidth: "183", listboxMaxSize: "6" },
			frm6readership:        { selectboxWidth: "158", listboxMaxSize: "6" },
			frm6region:            { selectboxWidth: "158", listboxMaxSize: "6" }
		};
	}
	else {
		options = {
			//select_contact_form_selection: { selectboxWidth: "298", listboxMaxSize: "6" },
			select_contact_form_selection: { selectboxWidth: "298", listboxMaxSize: "5" },

			frm1country: { selectboxWidth: "164", listboxMaxSize: "6" },

			frm2country:       { selectboxWidth: "164", listboxMaxSize: "6" },
			frm2area_intested: { selectboxWidth: "197", listboxMaxSize: "4" },

			frm3country:         { selectboxWidth: "164", listboxMaxSize: "6" },
			frm3arrival_year:    { selectboxWidth:  "61", listboxMaxSize: "3" },
			frm3arrival_month:   { selectboxWidth:  "59", listboxMaxSize: "6" },
			frm3arrival_day:     { selectboxWidth:  "57", listboxMaxSize: "6" },
			frm3departure_year:  { selectboxWidth:  "61", listboxMaxSize: "3" },
			frm3departure_month: { selectboxWidth:  "59", listboxMaxSize: "6" },
			frm3departure_day:   { selectboxWidth:  "57", listboxMaxSize: "6" },

			frm4country:               { selectboxWidth: "164", listboxMaxSize: "6" },
			frm4industry:              { selectboxWidth: "164", listboxMaxSize: "9", dropdownWidth: ddWidth_frm4industry },
			frm4posession_from_year:   { selectboxWidth:  "61", listboxMaxSize: "3" },
			frm4posession_from_month:  { selectboxWidth:  "59", listboxMaxSize: "6" },
			frm4posession_from_day:    { selectboxWidth:  "58", listboxMaxSize: "6" },
			frm4posession_until_year:  { selectboxWidth:  "61", listboxMaxSize: "3" },
			frm4posession_until_month: { selectboxWidth:  "59", listboxMaxSize: "6" },
			frm4posession_until_day:   { selectboxWidth:  "58", listboxMaxSize: "6" },

			/*
			frm5country:            { selectboxWidth: "164", listboxMaxSize: "6" },
			frm5event_start_year:   { selectboxWidth:  "61", listboxMaxSize: "3" },
			frm5event_start_month:  { selectboxWidth:  "59", listboxMaxSize: "6" },
			frm5event_start_day:    { selectboxWidth:  "58", listboxMaxSize: "6" },
			frm5event_finish_year:  { selectboxWidth:  "61", listboxMaxSize: "3" },
			frm5event_finish_month: { selectboxWidth:  "59", listboxMaxSize: "6" },
			frm5event_finish_day:   { selectboxWidth:  "58", listboxMaxSize: "6" },
			frm5booking_time:       { selectboxWidth: "190", listboxMaxSize: "4", dropdownWidth: ddWidth_frm5booking_time },
			frm5event_nature:       { selectboxWidth: "190", listboxMaxSize: "6" },
			*/

			frm6country:           { selectboxWidth: "164", listboxMaxSize: "6" },
			frm6converage_section: { selectboxWidth: "183", listboxMaxSize: "6" },
			frm6readership:        { selectboxWidth: "158", listboxMaxSize: "6" },
			frm6region:            { selectboxWidth: "158", listboxMaxSize: "6" }
		};
	}

	selects = [];
	for (i in options) {
		selects.push(i);
	}

	pos = 0;
	setTimeout(function () {
			if (pos >= selects.length) {
				return;
			}
			var id = selects[pos];
			$('#' + id).selectbox(options[id]);
			pos++;
			setTimeout(arguments.callee, 0);
		}, 0);
	var curFormIndex = document.getElementById('select_contact_form_selection').selectedIndex + 1;
	document.getElementById('contact_form_' + curFormIndex).reset();
	
	// set up form validation
	frm1.frm1telephone1.validators = [
		{
			validator: formValidation.numOnlyValidator
		}
	];
	frm1.frm1telephone2.validators = [
		{
			validator: formValidation.notBlankValidator,
			highlightId: ['frm1telephone1']
		},
		{
			validator: formValidation.numOnlyValidator,
			highlightId: ['frm1telephone1']
		}
	];
	frm1.frm1fax.validators = [
		{
			validator: formValidation.numOnlyValidator
		}
	];
	frm1.frm1email.validators = [
		{
			validator: formValidation.notBlankValidator
		},
		{
			validator: formValidation.emailValidator
		}
	];

	frm2.frm2telephone1.validators = [
		{
			validator: formValidation.numOnlyValidator
		}
	];
	frm2.frm2telephone2.validators = [
		{
			validator: formValidation.notBlankValidator,
			highlightId: ['frm2telephone1']
		},
		{
			validator: formValidation.numOnlyValidator,
			highlightId: ['frm2telephone1']
		}
	];
	frm2.frm2fax.validators = [
		{
			validator: formValidation.numOnlyValidator
		}
	];
	frm2.frm2email.validators = [
		{
			validator: formValidation.notBlankValidator
		},
		{
			validator: formValidation.emailValidator
		}
	];
	frm2.frm2area_intested.validators = [
		{
			validator: formValidation.optionSelectedValidator
		}
	];

	frm3.frm3telephone1.validators = [
		{
			validator: formValidation.numOnlyValidator
		}
	];
	frm3.frm3telephone2.validators = [
		{
			validator: formValidation.notBlankValidator,
			highlightId: ['frm3telephone1']
		},
		{
			validator: formValidation.numOnlyValidator,
			highlightId: ['frm3telephone1']
		}
	];
	frm3.frm3fax.validators = [
		{
			validator: formValidation.numOnlyValidator
		}
	];
	frm3.frm3email.validators = [
		{
			validator: formValidation.notBlankValidator
		},
		{
			validator: formValidation.emailValidator
		}
	];
	frm3.frm3arrival_year.validators = [
		{
			validator: formValidation.dateInPastValidator,
			day: todayDay,
			month: todayMonth,
			year: todayYear,
			currentday: frm3.frm3arrival_day,
			currentmonth: frm3.frm3arrival_month,
			currentyear: frm3.frm3arrival_year
		}
	];
	frm3.frm3departure_year.validators = [
		{
			validator: formValidation.dateInPastValidator,
			day: todayDay,
			month: todayMonth,
			year: todayYear,
			currentday: frm3.frm3departure_day,
			currentmonth: frm3.frm3departure_month,
			currentyear: frm3.frm3departure_year
		},
		{
			validator: formValidation.dateInPastValidator,
			day: frm3.frm3arrival_day,
			month: frm3.frm3arrival_month,
			year: frm3.frm3arrival_year,
			deltaDay: 29,
			deltaMonth: 0,
			deltaYear: 0,
			currentday: frm3.frm3departure_day,
			currentmonth: frm3.frm3departure_month,
			currentyear: frm3.frm3departure_year,
			highlightId: ['frm3departure_year','min_stay']
		}
	];
	frm3.frm3num_adult.validators = [
		{
			validator: formValidation.numOnlyValidator
		}
	];
	frm3.frm3num_children.validators = [
		{
			validator: formValidation.numOnlyValidator
		}
	];
	frm3.frm3num_bedroom.validators = [
		{
			validator: formValidation.notBlankValidator
		},
		{
			validator: formValidation.numOnlyValidator
		},
		{
			validator: formValidation.numGreaterThanZero
		}
	];
	frm3.frm3rentalbudget.validators = [
		{
			validator: formValidation.characterRangeValidator,
			ranges: ['digit','spacing'],
			symbols: ' .,$-'
		},
		{
			// allow only one amount ($aa,aaa.bb) or one range ($aa,aaa.bb - $cc,ccc.dd)
			// all amounts must be greater than $45,000
			// if a range, the second amount must be greater than the first amount
			validator: function (el) {
				var val = String(el.value), amounts, from, to, l;
				if (/^\s*$/.test(val)) {
					return true;
				}
				amounts = val.replace(/[\s,$]/g, '').split('-');
				l = amounts.length;
				if (l > 2) {
					return false;
				}
				from = parseFloat(amounts[0]);
				if (isNaN(from) || !isFinite(from) || from < 45000) {
					return false;
				}
				if (l == 2) {
					to = parseFloat(amounts[1]);
					if (isNaN(to) || !isFinite(to) || to <= from) {
						return false;
					}
				}
				return true;
			},
			highlightId: ['frm3rentalbudget','min_budget']
		}
	];

	frm4.frm4co_website.validators = [
		{
			validator: formValidation.characterRangeValidator,
			ranges: ['numAlphSymb','spacing'],
			symbols: ' '
		}
	];
	frm4.frm4telephone1.validators = [
		{
			validator: formValidation.numOnlyValidator
		}
	];
	frm4.frm4telephone2.validators = [
		{
			validator: formValidation.notBlankValidator,
			highlightId: ['frm4telephone1']
		},
		{
			validator: formValidation.numOnlyValidator,
			highlightId: ['frm4telephone1']
		}
	];
	frm4.frm4fax.validators = [
		{
			validator: formValidation.numOnlyValidator
		}
	];
	frm4.frm4email.validators = [
		{
			validator: formValidation.notBlankValidator
		},
		{
			validator: formValidation.emailValidator
		}
	];
	frm4.frm4posession_from_year.validators = [
		{
			validator: formValidation.dateInPastValidator,
			day: todayDay,
			month: todayMonth,
			year: todayYear,
			currentday: frm4.frm4posession_from_day,
			currentmonth: frm4.frm4posession_from_month,
			currentyear: frm4.frm4posession_from_year
		}
	];
	frm4.frm4posession_until_year.validators = [
		{
			validator: formValidation.dateInPastValidator,
			day: todayDay,
			month: todayMonth,
			year: todayYear,
			currentday: frm4.frm4posession_until_day,
			currentmonth: frm4.frm4posession_until_month,
			currentyear: frm4.frm4posession_until_year
		},
		{
			validator: formValidation.dateInPastValidator,
			day: frm4.frm4posession_from_day,
			month: frm4.frm4posession_from_month,
			year: frm4.frm4posession_from_year,
			currentday: frm4.frm4posession_until_day,
			currentmonth: frm4.frm4posession_until_month,
			currentyear: frm4.frm4posession_until_year
		}
	];

	/*
	frm5.frm5telephone1.validators = [
		{
			validator: formValidation.numOnlyValidator
		}
	];
	frm5.frm5telephone2.validators = [
		{
			validator: formValidation.notBlankValidator,
			highlightId: ['frm5telephone1']
		},
		{
			validator: formValidation.numOnlyValidator,
			highlightId: ['frm5telephone1']
		}
	];
	frm5.frm5fax.validators = [
		{
			validator: formValidation.notBlankValidator
		},
		{
			validator: formValidation.numOnlyValidator
		}
	];
	frm5.frm5email.validators = [
		{
			validator: formValidation.notBlankValidator
		},
		{
			validator: formValidation.emailValidator
		}
	];	
	frm5.frm5event_start_year.validators = [
		{
			validator: formValidation.dateInPastAllowSameValidator,
			day: todayDay,
			month: todayMonth,
			year: todayYear,
			currentday: frm5.frm5event_start_day,
			currentmonth: frm5.frm5event_start_month,
			currentyear: frm5.frm5event_start_year
		}
	];
	frm5.frm5event_finish_year.validators = [
		{
			validator: formValidation.dateInPastAllowSameValidator,
			day: todayDay,
			month: todayMonth,
			year: todayYear,
			currentday: frm5.frm5event_finish_day,
			currentmonth: frm5.frm5event_finish_month,
			currentyear: frm5.frm5event_finish_year
		},
		{
			validator: formValidation.dateInPastAllowSameValidator,
			day: frm5.frm5event_start_day,
			month: frm5.frm5event_start_month,
			year: frm5.frm5event_start_year,
			currentday: frm5.frm5event_finish_day,
			currentmonth: frm5.frm5event_finish_month,
			currentyear: frm5.frm5event_finish_year
		}
	];
	frm5.frm5booking_time.validators = [
		{
			validator: formValidation.optionSelectedValidator
		}
	];
	frm5.frm5event_nature.validators = [
		{
			validator: formValidation.optionSelectedValidator
		}
	];
	frm5.frm5num_delegates.validators = [
		{
			validator: formValidation.notBlankValidator
		},
		{
			validator: formValidation.numOnlyValidator
		},
		{
			validator: formValidation.numGreaterThanZero
		}
	];
	*/
	
	frm6.frm6mobile_1.validators = [
		{
			validator: formValidation.numOnlyValidator
		}
	];
	frm6.frm6mobile_2.validators = [
		{
			validator: formValidation.notBlankValidator,
			highlightId: ['frm6mobile_1']
		},
		{
			validator: formValidation.numOnlyValidator,
			highlightId: ['frm6mobile_1']
		}
	];
	frm6.frm6off_tel1.validators = [
		{
			validator: formValidation.numOnlyValidator
		}
	];
	frm6.frm6off_tel2.validators = [
		{
			validator: formValidation.notBlankValidator,
			highlightId: ['frm6off_tel1']
		},
		{
			validator: formValidation.numOnlyValidator,
			highlightId: ['frm6off_tel1']
		}
	];
	frm6.frm6fax.validators = [
		{
			validator: formValidation.numOnlyValidator
		}
	];
	frm6.frm6email.validators = [
		{
			validator: formValidation.notBlankValidator
		},
		{
			validator: formValidation.emailValidator
		}
	];
	frm6.frm6converage_section.validators = [
		{
			validator: formValidation.optionSelectedValidator
		}
	];
	if (lang == "en") {
		frm1.frm1firstname.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['upper','lower'],
				symbols: ' \'-.,'
			}
		];
		frm1.frm1lastname.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['upper','lower'],
				symbols: ' \'-.,'
			}
		];
		frm1.frm1companyname.validators = [
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['upper','lower','digit'],
				symbols: ' -\',.()'
			}
		];
		frm1.frm1address1.validators = [
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing'],
				symbols: ' '
			}
		];
		frm1.frm1address2.validators = [
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing'],
				symbols: ' ',
				highlightId: ['frm1address1']
			}
		];
		frm1.frm1address3.validators = [
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing'],
				symbols: ' ',
				highlightId: ['frm1address1']
			}
		];	
		frm1.frm1message.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing'],
				symbols: ' '
			}
		];
		
		frm2.frm2firstname.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['upper','lower'],
				symbols: ' \'-.,'
			}
		];
		frm2.frm2lastname.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['upper', 'lower'],
				symbols: ' \'-.,'
			}
		];
		frm2.frm2companyname.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['upper', 'lower','digit'],
				symbols: ' -\',.()'
			}
		];
		frm2.frm2address1.validators = [
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing'],
				symbols: ' '
			}
		];
		frm2.frm2address2.validators = [
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing'],
				symbols: ' ',
				highlightId: ['frm2address1']
			}
		];
		frm2.frm2address3.validators = [
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing'],
				symbols: ' ',
				highlightId: ['frm2address1']
			}
		];
		frm2.frm2message.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing'],
				symbols: ' '
			}
		];
		
		
		frm3.frm3firstname.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['upper','lower'],
				symbols: ' \'-.,'
			}
		];
		frm3.frm3lastname.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['upper','lower'],
				symbols: ' \'-.,'
			}
		];
		frm3.frm3address1.validators = [
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing'],
				symbols: ' '
			}
		];
		frm3.frm3address2.validators = [
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing'],
				symbols: ' ',
				highlightId: ['frm3address1']
			}
		];
		frm3.frm3address3.validators = [
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing'],
				symbols: ' ',
				highlightId: ['frm3address1']
			}
		];
		frm3.frm3message.validators = [
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing'],
				symbols: ' '
			}
		];	
		
		frm4.frm4firstname.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['upper', 'lower'],
				symbols: ' \'-.,'
			}
		];
		frm4.frm4lastname.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['upper', 'lower'],
				symbols: ' \'-.,'
			}
		];
		frm4.frm4companyname.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['upper', 'lower','digit'],
				symbols: ' -\',.()'
			}
		];
		frm4.frm4address1.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing'],
				symbols: ' '
			}
		];
		frm4.frm4office_size.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing'],
				symbols: ' '
			}
		];
		frm4.frm4message.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing'],
				symbols: ' '
			}
		];
		
		/*
		frm5.frm5firstname.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['upper', 'lower'],
				symbols: ' \'-.,'
			}
		];
		frm5.frm5lastname.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['upper', 'lower'],
				symbols: ' \'-.,'
			}
		];
		frm5.frm5companyname.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['upper', 'lower','digit'],
				symbols: ' -\',.()'
			}
		];
		frm5.frm5address1.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing'],
				symbols: ' '
			}
		];
		frm5.frm5address2.validators = [
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing'],
				symbols: ' ',
				highlightId: ['frm5address1']
			}
		];
		frm5.frm5address3.validators = [
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing'],
				symbols: ' ',
				highlightId: ['frm5address1']
			}
		];
		frm5.frm5message.validators = [
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing'],
				symbols: ' '
			}
		];
		*/
		
		frm6.frm6firstname.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['upper','lower'],
				symbols: ' \'-.,'
			}
		];
		frm6.frm6lastname.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['upper','lower'],
				symbols: ' \'-.,'
			}
		];
		frm6.frm6companyname.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['upper', 'lower', 'digit'],
				symbols: ' -\',.()'
			}
		];
		frm6.frm6address.validators = [
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing'],
				symbols: ' '
			}
		];
		frm6.frm6city.validators = [
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing'],
				symbols: ' '
			}
		];
		frm6.frm6converage_section_others.validators = [
			{
				validator: formValidation.specificOthersActivator,
				vars: ['frm6converage_section', 'others', frm6.frm6converage_section_others],
				highlightId: ['frm6converage_section']
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing'],
				symbols: ' ',
				highlightId: ['frm6converage_section']
			}
		];
		frm6.frm6region_others.validators = [
			{
				validator: formValidation.specificOthersActivator,
				vars: ['frm6region', 'others', frm6.frm6region_others],
				highlightId: ['frm6region']
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing'],
				symbols: ' ',
				highlightId: ['frm6region']
			}
		];
		frm6.frm6message.validators = [
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing'],
				symbols: ' '
			}
		];
	}
	else {
		frm1.frm1firstname.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['upper', 'lower','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement'],
				symbols: ' \'-.,'
			}
		];
		frm1.frm1lastname.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['upper', 'lower','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement'],
				symbols: ' \'-.,'
			}
		];
		frm1.frm1companyname.validators = [
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['upper', 'lower' ,'digit','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement'],
				symbols: ' -\',.()'
			}
		];
		frm1.frm1address1.validators = [
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement','cjkRadicalsSupplement','kangxiRadicals','cjkStrokes','cjkSymbolsAndPunctuation','halfwidthAndFullwidthForms','verticalForms'],
				symbols: ' '
			}
		];
		frm1.frm1address2.validators = [
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement','cjkRadicalsSupplement','kangxiRadicals','cjkStrokes','cjkSymbolsAndPunctuation','halfwidthAndFullwidthForms','verticalForms'],
				symbols: ' ',
				highlightId: ['frm1address1']
			}
		];
		frm1.frm1address3.validators = [
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement','cjkRadicalsSupplement','kangxiRadicals','cjkStrokes','cjkSymbolsAndPunctuation','halfwidthAndFullwidthForms','verticalForms'],
				symbols: ' ',
				highlightId: ['frm1address1']
			}
		];	
		frm1.frm1message.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement'],
				symbols: ' '
			}
		];
		
		frm2.frm2firstname.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['upper','lower','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement'],
				symbols: ' \'-.,'
			}
		];
		frm2.frm2lastname.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['upper', 'lower','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement'],
				symbols: ' \'-.,'
			}
		];
		frm2.frm2companyname.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['upper', 'lower','digit','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement'],
				symbols: ' -\',.()'
			}
		];
		frm2.frm2address1.validators = [
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement','cjkRadicalsSupplement','kangxiRadicals','cjkStrokes','cjkSymbolsAndPunctuation','halfwidthAndFullwidthForms','verticalForms'],
				symbols: ' '
			}
		];
		frm2.frm2address2.validators = [
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement','cjkRadicalsSupplement','kangxiRadicals','cjkStrokes','cjkSymbolsAndPunctuation','halfwidthAndFullwidthForms','verticalForms'],
				symbols: ' ',
				highlightId: ['frm2address1']
			}
		];
		frm2.frm2address3.validators = [
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement','cjkRadicalsSupplement','kangxiRadicals','cjkStrokes','cjkSymbolsAndPunctuation','halfwidthAndFullwidthForms','verticalForms'],
				symbols: ' ',
				highlightId: ['frm2address1']
			}
		];
		frm2.frm2message.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement','cjkRadicalsSupplement','kangxiRadicals','cjkStrokes','cjkSymbolsAndPunctuation','halfwidthAndFullwidthForms','verticalForms'],
				symbols: ' '
			}
		];
		
		frm3.frm3firstname.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['upper', 'lower','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement'],
				symbols: ' \'-.,'
			}
		];
		frm3.frm3lastname.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['upper', 'lower','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement'],
				symbols: ' \'-.,'
			}
		];
		frm3.frm3address1.validators = [
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement','cjkRadicalsSupplement','kangxiRadicals','cjkStrokes','cjkSymbolsAndPunctuation','halfwidthAndFullwidthForms','verticalForms'],
				symbols: ' '
			}
		];
		frm3.frm3address2.validators = [
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement','cjkRadicalsSupplement','kangxiRadicals','cjkStrokes','cjkSymbolsAndPunctuation','halfwidthAndFullwidthForms','verticalForms'],
				symbols: ' ',
				highlightId: ['frm3address1']
			}
		];
		frm3.frm3address3.validators = [
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement','cjkRadicalsSupplement','kangxiRadicals','cjkStrokes','cjkSymbolsAndPunctuation','halfwidthAndFullwidthForms','verticalForms'],
				symbols: ' ',
				highlightId: ['frm3address1']
			}
		];
		frm3.frm3message.validators = [
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement','cjkRadicalsSupplement','kangxiRadicals','cjkStrokes','cjkSymbolsAndPunctuation','halfwidthAndFullwidthForms','verticalForms'],
				symbols: ' '
			}
		];	
		
		frm4.frm4firstname.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['upper', 'lower','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement'],
				symbols: ' \'-.,'
			}
		];
		frm4.frm4lastname.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['upper', 'lower','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement'],
				symbols: ' \'-.,'
			}
		];
		frm4.frm4companyname.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['upper', 'lower','digit','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement'],
				symbols: ' -\',.()'
			}
		];
		frm4.frm4address1.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement','cjkRadicalsSupplement','kangxiRadicals','cjkStrokes','cjkSymbolsAndPunctuation','halfwidthAndFullwidthForms','verticalForms'],
				symbols: ' '
			}
		];
		frm4.frm4office_size.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement','cjkRadicalsSupplement','kangxiRadicals','cjkStrokes','cjkSymbolsAndPunctuation','halfwidthAndFullwidthForms','verticalForms'],
				symbols: ' '
			}
		];
		frm4.frm4message.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement','cjkRadicalsSupplement','kangxiRadicals','cjkStrokes','cjkSymbolsAndPunctuation','halfwidthAndFullwidthForms','verticalForms'],
				symbols: ' '
			}
		];
		
		/*
		frm5.frm5firstname.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['upper', 'lower','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement'],
				symbols: ' \'-.,'
			}
		];
		frm5.frm5lastname.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['upper', 'lower','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement'],
				symbols: ' \'-.,'
			}
		];
		frm5.frm5companyname.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['upper','lower','digit','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement'],
				symbols: ' -\',.()'
			}
		];
		frm5.frm5address1.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement','cjkRadicalsSupplement','kangxiRadicals','cjkStrokes','cjkSymbolsAndPunctuation','halfwidthAndFullwidthForms','verticalForms'],
				symbols: ' '
			}
		];
		frm5.frm5address2.validators = [
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement','cjkRadicalsSupplement','kangxiRadicals','cjkStrokes','cjkSymbolsAndPunctuation','halfwidthAndFullwidthForms','verticalForms'],
				symbols: ' ',
				highlightId: ['frm5address1']
			}
		];
		frm5.frm5address3.validators = [
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement','cjkRadicalsSupplement','kangxiRadicals','cjkStrokes','cjkSymbolsAndPunctuation','halfwidthAndFullwidthForms','verticalForms'],
				symbols: ' ',
				highlightId: ['frm5address1']
			}
		];
		frm5.frm5message.validators = [
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement','cjkRadicalsSupplement','kangxiRadicals','cjkStrokes','cjkSymbolsAndPunctuation','halfwidthAndFullwidthForms','verticalForms'],
				symbols: ' '
			}
		];
		*/
		
		frm6.frm6firstname.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['upper', 'lower','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement'],
				symbols: ' \'-.,'
			}
		];
		frm6.frm6lastname.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['upper', 'lower','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement'],
				symbols: ' \'-.,'
			}
		];
		frm6.frm6companyname.validators = [
			{
				validator: formValidation.notBlankValidator
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['upper', 'lower','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement', 'digit'],
				symbols: ' -\',.()'
			}
		];
		frm6.frm6address.validators = [
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement','cjkRadicalsSupplement','kangxiRadicals','cjkStrokes','cjkSymbolsAndPunctuation','halfwidthAndFullwidthForms','verticalForms'],
				symbols: ' '
			}
		];
		frm6.frm6city.validators = [
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement','cjkRadicalsSupplement','kangxiRadicals','cjkStrokes','cjkSymbolsAndPunctuation','halfwidthAndFullwidthForms','verticalForms'],
				symbols: ' '
			}
		];
		frm6.frm6converage_section_others.validators = [
			{
				validator: formValidation.specificOthersActivator,
				vars: ['frm6converage_section', 'others', frm6.frm6converage_section_others],
				highlightId: ['frm6converage_section']
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement','cjkRadicalsSupplement','kangxiRadicals','cjkStrokes','cjkSymbolsAndPunctuation','halfwidthAndFullwidthForms','verticalForms'],
				symbols: ' ',
				highlightId: ['frm6converage_section']
			}
		];
		frm6.frm6region_others.validators = [
			{
				validator: formValidation.specificOthersActivator,
				vars: ['frm6region', 'others', frm6.frm6region_others],
				highlightId: ['frm6region']
			},
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement','cjkRadicalsSupplement','kangxiRadicals','cjkStrokes','cjkSymbolsAndPunctuation','halfwidthAndFullwidthForms','verticalForms'],
				symbols: ' ',
				highlightId: ['frm6region']
			}
		];
		frm6.frm6message.validators = [
			{
				validator: formValidation.characterRangeValidator,
				ranges: ['numAlphSymb','spacing','cjkUnifiedIdeographs','cjkUnifiedIdeographsExtensionA','cjkUnifiedIdeographsExtensionB','cjkCompabilityIdeographs','cjkCompabilityIdeographsSupplement','cjkRadicalsSupplement','kangxiRadicals','cjkStrokes','cjkSymbolsAndPunctuation','halfwidthAndFullwidthForms','verticalForms'],
				symbols: ' '
			}
		];
	}
	for (i = 0; i < frms.length; i++) {
		formValidation.init(frms[i], 'alert_user');
	}
};

