function openWindow(url,name,features){
	var win = window.open(url,name,features);
	if (win.opener == null) win.opener = self;
	win.focus();
}
	
	var options0 =   ['0-9','A-C','D-F','G-I','J-L','M-O','P-S','T-V','W-Z'];
	var options1 =   ['0-9','A-C','D-F','G-I','J-L','M-O','P-S','T-V','W-Z'];
	var options2 =   ['1900-1984','1985','1986','1987','1988','1989','1990','1991','1992','1993','1994','1995','1996','1997','1998','1999','2000','2001','2002','2003','2004','2005','2006'];
	var options3 =   ['0-9','D-F','G-I','J-L','M-O','P-S','T-V','W-Z'];

	function doComboBox() {
		var film_search, film_search2;
		var i;
		
		film_search = document.forms['form1'].elements['film_search'].selectedIndex;
		film_search2 = document.forms['form1'].elements['film_search2'];
		
		film_search2.length = 0;
		
		// 0,1,2,3
		for (i=0; i<eval('options'+film_search).length; i++) {
			film_search2.options[film_search2.length] = new Option(eval('options'+film_search)[i]);
		}

		if (film_search == 2) {
			film_search2.selectedIndex = film_search2.length-1;
		} else {
			film_search2.selectedIndex = 0;
		}
		if (!document.all) {
			history.go(0);
		}
	}

	function checkNewsletterForm(form) {
		for (i=0;i<form.elements.length;i++) {
			if (form.elements[i].value.length==0) {
				alert("All fields are necessary.");
				form.elements[i].style.backgroundColor = '#ff9999';
				form.elements[i].focus();
				return false;
			} else if ((form.elements[i].name == 'email') || (form.elements[i].name == 'email_unsubscribe')) {
				if (emailCheck (form.elements[i].value) == false) {
					form.elements[i].style.backgroundColor = '#ff9999';
					form.elements[i].focus();
					return false;
				} else {
					form.elements[i].style.backgroundColor = '#9eccee'; 
				}
			} else { 
				form.elements[i].style.backgroundColor = '#9eccee'; 
			}
		}
		return true;
	}

	function emailCheck (emailStr) {
		var checkTLD=1;
		var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/; 
		var emailPat=/^(.+)@(.+)$/; 
		var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]"; 
		var validChars="\[^\\s" + specialChars + "\]"; 
		var quotedUser="(\"[^\"]*\")"; 
		var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/; 
		var atom=validChars + '+'; 
		var word="(" + atom + "|" + quotedUser + ")"; 
		var userPat=new RegExp("^" + word + "(\\." + word + ")*$"); 
		var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$"); 
		var matchArray=emailStr.match(emailPat); 
		if (matchArray==null) { 
			alert("The Email Address Is Invalid"); 
			return false; 
		} 

		var user=matchArray[1]; 
		var domain=matchArray[2]; 
		for (i=0; i<user.length; i++) { 
			if (user.charCodeAt(i)>127) { 
				alert("The Username Contains Invalid Characters."); 
				return false; 
			} 
		} 

		for (i=0; i<domain.length; i++) { 
			if (domain.charCodeAt(i)>127) { 
				alert("Ths Domain Name Contains Invalid Characters."); 
				return false; 
			} 
		} 

		if (user.match(userPat)==null) { 
			alert("The Username Is Invalid."); 
			return false; 
		} 

		var IPArray=domain.match(ipDomainPat); 
		if (IPArray!=null) { 
			for (var i=1;i<=4;i++) { 
				if (IPArray>255) { 
					alert("The Destination IP Address Is Invalid.");
					return false; 
				} 
			} 
			return true; 
		} 
		var atomPat=new RegExp("^" + atom + "$"); 
		var domArr=domain.split("."); 
		var len=domArr.length; 
		for (i=0;i<len;i++) { 
			if (domArr[i].search(atomPat)==-1) { 
				alert("The Domain Name Is Invalid."); 
				return false; 
			} 
		} 
		if (checkTLD && domArr[domArr.length-1].length!=2 && 
				domArr[domArr.length-1].search(knownDomsPat)==-1) { 
			alert("The Domain Name Extension Is Invalid"); 
			return false; 
		} 
		if (len<2) { 
			alert("The Address Is Missing A Hostname."); 
			return false; 
		}
		return true;
	} 
