// JavaScript Document
function winPopup(name, url, width, height) {
	if (!width) width = 400;
	if (!height) height = 400;
	var left = window.screen.availWidth / 2 - width / 2;
	var top = window.screen.availHeight / 2 - height / 2;
	var win = window.open(url, name, 'width=' + width + ',height=' + height + ',left=' + left + ',top=' + top + ',scrollbars=1,status=1');
	win.focus();
}

function resizeWindow(width, height) {
	window.resizeTo(width, height);
	window.moveTo(window.screen.availWidth / 2 - width / 2, window.screen.availHeight / 2 - height / 2);
}

function closeWindow() {
	if (window.opener) {
		window.opener.focus();
		window.close();
	}
}

function openerUrl(url) {
	window.opener.location = url;
	window.close();
}

if (!String.prototype.trim) {
	String.prototype.trim = function() {
		var str = this.replace(/^\s*/, '');
		return str.replace(/\s*$/, '');
	};
}

function checkForm(form) {
	var fields = '';
	for (var i = 0; i < form.elements.length; i++) {
		var elem = form.elements[i];
		var value = elem.value.trim();
		var name = elem.name.toLowerCase();
		if (elem.type.toLowerCase() == 'text' || elem.type.toLowerCase() == 'textarea') {
			if (name.indexOf('email') >= 0 && value != '' && !validateEmail(value)) {
				fields += '\n' + ((elem.title == '') ? 'Email' : elem.title);
			}
			else if (name.indexOf('postcode') >= 0 && value != '' && !value.match(/^\d+$/)) {
				fields += '\n' + ((elem.title == '') ? 'Postcode' : elem.title);
			}			//dont give the element a title if you dont want it to be checked
			else if (value == '' && elem.title != '') {
				fields += '\n' + elem.title;
			}
		} else if (elem.type.toLowerCase() == 'select-one') {
			if (elem.title != '' && (elem.value == 0 || elem.value == '')) {
				fields += '\n' + elem.title;
			}
		}
	}
	if (fields != '') {
		alert('Please fill or verify following fields: \n\n' + fields);
		return false;
	}
	return true;
}

function validateEmail(email) {
	return email.match(/^\w+([\.-]\w+)?@\w+([\.-]\w+)+$/);
}

if (!Array.prototype.has) {
	Array.prototype.has = function(value) {
		for (var i = 0; i < this.length; i++) {
			if (this[i] == value) {
				return true;
			}
		}
		return false;
	};
}

if (!Array.prototype.push) {
	Array.prototype.push = function(value) {
		this[this.length] = value;
	};
}

function inputPhone(event, obj) {
	var chars = new Array(
		45, // "-"
		32, // space
		40, // "("
		41 // ")"
	);
	return inputNumber(event, obj, false, false, chars);
}

function inputInteger(event, obj, length) {
	return inputNumber(event, obj, false, length);	
}

function inputFloat(event, obj) {
	return inputNumber(event, obj, true);
}

function inputNumber(event, obj, decimals, length, chars) {
	if (!length) length = 999;
	if (!chars) {
		chars = new Array();
	}
	var allowed = new Array(
		9,	// tab
		8,	// backspace
		13,	// enter
		46	// dot "."
	);
	var which = event.which;
	var key = event.keyCode;
	if (typeof(which) == "undefined") {
		which = key;
		key = 0;
	}
	if (which == 46 && obj.value.indexOf(".") == -1 && decimals && obj.value.length < length) {
		return true;
	}
	if (!((which >= 48 && which <= 57 && obj.value.length < length) || which == 13 || (key >= 37 && key <= 40) || chars.has(which) || (key >= 112 && key <= 123) || event.ctrlKey || allowed.has(key))) {
		event.returnValue = false;
		return false;
	}
	return true;	
}

function ShowHide( divId , numLoop ){
	loop=true;
	nLoop=numLoop;
	if (!numLoop){ nLoop=1;loop=false;}
	
	for(n=1;n<=nLoop;n++){	
		if(loop){trueDivId =  divId + n;}else{trueDivId=divId;}
		if(document.getElementById( trueDivId ).style.display == 'none'){
			document.getElementById( trueDivId ).style.display='block';
			/*alert(" show "+divId+n);*/
		}else{
			/*alert(" hide "+divId+n);*/
			document.getElementById( trueDivId ).style.display = 'none';
		}	
	}
	/*alert(" loop "+loop+numLoop);*/
}

function setIdWithValue( id, value ){
	document.getElementById( id ).value = value;
}
