var exps = [
	['email', "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$"],
	['login', "^([a-zA-Z0-9_]+)$"]
];

function getExp(chars) {
	for (var i=0; i<exps.length; i++) if (exps[i][0] == chars) return exps[i][1];
	return false;
}

function _flash (version, filename, name, width, height, wmode, flashvars,bgcolor) {
   if (!bgcolor) bgcolor = '#EFF8FA'
  
   var menu    = '';
   document.write("<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version="+version+"' width='"+width+"' height='"+height+"' id='"+name+"' align='middle'>");
   document.write("<param name='FlashVars' value='"+flashvars+"' />");
   document.write("<param name='allowScriptAccess' value='always' />");
   document.write("<param name='wmode' value='"+wmode+"' />");
   document.write("<param name='bgcolor' value='"+bgcolor+"' />");
   document.write("<param name='salign' value='lt' />");
   document.write("<param name='movie' value='"+filename+"' /><param name='quality' value='high' /><embed src='"+filename+"' wmode='"+wmode+"' quality='high' FLashVars='"+flashvars+"' salign='lt' width='"+width+"' height='"+height+"' bgcolor='"+bgcolor+"' name='"+name+"' align='middle' allowScriptAccess='always' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' />");
   document.write("</object>");
} 

function checkValue(value, caption, chars, min, max, message) {
//	if (!chars) {
		if (value == 0) return message ? message : 'Please enter field \'' + caption +'\'.';
		else if (!chars) return false;
//	}
	ex = getExp(chars);
	if (ex || chars || min > 0 || max > 0) {
		if (!ex && !chars && value == 0 && min > 0) return 'Please fill in field \'' + caption +'\'.';
		if (!ex && !chars && value.length < min) return 'Field \'' + caption + '\' must be at least ' + min + ' characters length.';
		if (!ex && !chars && value.length > max) return 'Field \'' + caption + '\' must be less than or equal ' + max + ' characters length.';
		if (!ex && !chars && name == 'login') if (!checkLogin(value)) return 'Field \'Username\' contains illegal characters.';
		if (!ex && !chars && name == 'email') if (!checkEmail(value)) return 'Email Address entered is incorrect.';
		if (window.RegExp) {
			if (ex) {
				var r = new RegExp(ex);
				if (!r.test(value)) return 'Field \'' + caption + '\' entered is incorrect.';
			} else {
				if (chars == '.') var r = new RegExp("^" + chars + "*$");
				else {
					var rty = new RegExp("[\*\+]$");
//					alert("^" + chars + (rty.test(chars) ? "" : "+") + "$");
					var r = new RegExp("^" + chars + (rty.test(chars) ? "" : "+") + "$")
				}
				if (!r.test(value)) return 'Field \'' + caption + '\' contains illegal characters.';
			}
		}
	} else if (value == max) return 'Please select field \'' + caption + '\'.';
	return false;
}

function checkForm(form, required) {
	for (var i=0; i<required.length; i++) {
		var rrr = false;
		var rad = false;
		for (var j=0; j<form.elements.length; j++) if (form.elements[j].name == required[i][0]) {
			if (required[i][2] == 'radio') {
				rrr = rrr || form.elements[j].checked;
				rad = true;
			} else {
				var res = checkValue(form.elements[j].value, required[i][1], required[i][2], required[i][3], required[i][4], required[i][5]);
				if (res) {
					alert(res);
					return false;
				}
				for (var k=0; k<form.elements.length; k++) if (form.elements[k].name == form.elements[j].name + '_confirmation') if (form.elements[k].value != form.elements[j].value) {
					alert('\'' + required[i][1] + '\' confirmation failed.');
					return false;
				}
			}
		}
		if (!rrr && rad) {
			if (required[i][5]) alert(required[i][5]);
			else alert('Please select radio \'' + required[i][1] +'\'.');
			return false;
		}
	}
	return true;
}

function openWindow(url, width, height) {
	var left = (screen.width/2) - width/2;
	var top = (screen.height/2) - height/2;
	var styleStr = 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbar=no,resizable=no,width=' + width + ',height=' + height + ',left=' + left + ',top=' + top + ',screenX=' + left + ',screenY=' + top;
	window.open(url, 'wind', styleStr);
}

function zoom(src, width, height) {
	openWindow('zoom.php?src=' + src + '&width=' + width + '&height=' + height, width, height);
}

