// Norberth Danson (June 04, 2007)

var joinform = function(){
	fade_bckg();
	draw_join();	
}
var draw_join= function(){
	var box_join = document.createElement('div');
	box_join.setAttribute('id', 'fade_overlay');
	document.body.appendChild(box_join);
	box_join.innerHTML = '<div style="width:600px; margin-left:auto; margin-right:auto; background:#FFFFFF; padding:2px;"><div id="location">join REDBOX<span style="font-size:0"></span>friends</div><div style="border:1px solid #cccccc; padding:15px;" id="join_content"></div></div>';
	populate_join();
}
var populate_join = function(){
	
	join_body =
	'<div class="clearfix"><div style="float:right; width:95px; padding:1px; border:1px solid #EFEFEF;"><div style="background-color:#00CB34; color:#FFFFFF; padding:7px; text-align:center">Now there\'s a place to share the joy of $1.00 DVD rentals and FREE codes!<br>Joining REDBOX<span style="font-size:0"></span>friends is as easy as pressing the &quot;pause&quot; button on your remote!<br><br>Make new movie-loving friends!<br><br>JOIN NOW! It\'s FREE, and comes with a money-back guarantee.</div></div>'
	+'<div style="float:left"><form id="join" name="join" onsubmit="return form_check(this)">'
	+'<table border="0" cellspacing="0" cellpadding="5">'
	  +'<tr>'
		+'<td class="label" valign="top"><span class="arrow_orange_rr">email</span></td>'
		+'<td><div id="email_result" class="w_100 b text_green hidden">OK</div>'	
			+'<input name="email" id="email" class="field w_150" maxlength="100" value="">'
			+'<span id="busy_img_screen_name" class="hidden"><img src="stuff/images/searching.gif"></span>'		
			+'<div class="text_info_s">a valid address is required to activate your account</div>'								
			+'<div id="email_err_display" class="w_300 error_txt"></div></td>'
	  +'</tr>'
						  
	  +'<tr>'
		+'<td class="label" valign="top"><span class="arrow_orange_rr">screen name</span></td>'
		+'<td><input name="screen_name" id="screen_name" class="field w_150" maxlength="50" value="">'
			+'<div id="counter_screen_name" class="text_info_s"></div>'														
			+'<div class="text_info_s">anything you want (may change it at any time)</div>'								
			+'<div id="screen_name_err_display" class="error_txt"></div></td>'
	  +'</tr>'
						  
	  +'<tr>'
		+'<td class="label" valign="top"><span class="arrow_orange_rr">password</span></td>'

		+'<td><input name="pi" id="pi" type="password" class="field w_150" maxlength="30" value="">'											
			+'<div class="text_info_s">6 characters min., <span class="text_greyD">cAsE SeNsiTivE</span>, no spaces</div>'
			+'<div id="pwd_err_display" class="error_txt"></div></td>'
	  +'</tr>'
						  
	  +'<tr>'
		+'<td class="label" valign="top"><span class="arrow_orange_rr">gender</span></td>'
		+'<td><table border="0" cellspacing="0" cellpadding="0">'
			  +'<tr>'											
				+'<td valign="top">female</td>'
				+'<td class="w_25"><input name="gender" type="radio" value="f"></td>'
				+'<td class="align_right w_25"><input name="gender" type="radio" value="m"></td>'
				+'<td valign="top">male</td>'
			  +'</tr>'										
			+'</table>'
			+'<div id="gender_err_display" class="error_txt"></div></td>'
	  +'</tr>'

	  +'<tr>'
		+'<td class="label" valign="top"><span class="arrow_orange_rr">birthdate</span></td>'
		+'<td>'
			
			+'<select class="field w_80" name="bmonth">'
				+'<option value="0">month</option>'
				+'<option value="1">Jan</option>'
				+'<option value="2">Feb</option>'
				+'<option value="3">Mar</option>'
				+'<option value="4">Apr</option>'
				+'<option value="5">May</option>'
				+'<option value="6">Jun</option>'
				+'<option value="7">Jul</option>'
				+'<option value="8">Aug</option>'
				+'<option value="9">Sep</option>'
				+'<option value="10">Oct</option>'
				+'<option value="11">Nov</option>'
				+'<option value="12">Dec</option>'									
			+'</select>'
			+'<select class="field w_50" name="bday">'
				+'<option value="0">day</option>'
				+'<option value="1">1</option>'
				+'<option value="2">2</option>'
				+'<option value="3">3</option>'
				+'<option value="4">4</option>'
				+'<option value="5">5</option>'
				+'<option value="6">6</option>'
				+'<option value="7">7</option>'
				+'<option value="8">8</option>'
				+'<option value="9">9</option>'
				+'<option value="10">10</option>'
				+'<option value="11">11</option>'
				+'<option value="12">12</option>'
				+'<option value="13">13</option>'
				+'<option value="14">14</option>'
				+'<option value="15">15</option>'
				+'<option value="16">16</option>'
				+'<option value="17">17</option>'
				+'<option value="18">18</option>'
				+'<option value="19">19</option>'
				+'<option value="20">20</option>'
				+'<option value="21">21</option>'
				+'<option value="22">22</option>'
				+'<option value="23">23</option>'
				+'<option value="24">24</option>'
				+'<option value="25">25</option>'
				+'<option value="26">26</option>'
				+'<option value="27">27</option>'
				+'<option value="28">28</option>'
				+'<option value="29">29</option>'
				+'<option value="30">30</option>'
				+'<option value="31">31</option>'
			+'</select>'
			+'<select class="field w_80" name="byear">'
				+'<option value="0">year</option>'
				+'<option value="1997">1997</option>'
+'<option value="1996">1996</option>'
+'<option value="1995">1995</option>'
+'<option value="1994">1994</option>'
+'<option value="1993">1993</option>'
+'<option value="1992">1992</option>'
+'<option value="1991">1991</option>'
+'<option value="1990">1990</option>'
+'<option value="1989">1989</option>'
+'<option value="1988">1988</option>'
+'<option value="1987">1987</option>'
+'<option value="1986">1986</option>'
+'<option value="1985">1985</option>'
+'<option value="1984">1984</option>'
+'<option value="1983">1983</option>'
+'<option value="1982">1982</option>'
+'<option value="1981">1981</option>'
+'<option value="1980">1980</option>'
+'<option value="1979">1979</option>'
+'<option value="1978">1978</option>'
+'<option value="1977">1977</option>'
+'<option value="1976">1976</option>'
+'<option value="1975">1975</option>'
+'<option value="1974">1974</option>'
+'<option value="1973">1973</option>'
+'<option value="1972">1972</option>'
+'<option value="1971">1971</option>'
+'<option value="1970">1970</option>'
+'<option value="1969">1969</option>'
+'<option value="1968">1968</option>'
+'<option value="1967">1967</option>'
+'<option value="1966">1966</option>'
+'<option value="1965">1965</option>'
+'<option value="1964">1964</option>'
+'<option value="1963">1963</option>'
+'<option value="1962">1962</option>'
+'<option value="1961">1961</option>'
+'<option value="1960">1960</option>'
+'<option value="1959">1959</option>'
+'<option value="1958">1958</option>'
+'<option value="1957">1957</option>'
+'<option value="1956">1956</option>'
+'<option value="1955">1955</option>'
+'<option value="1954">1954</option>'
+'<option value="1953">1953</option>'
+'<option value="1952">1952</option>'
+'<option value="1951">1951</option>'
+'<option value="1950">1950</option>'
+'<option value="1949">1949</option>'
+'<option value="1948">1948</option>'
+'<option value="1947">1947</option>'
+'<option value="1946">1946</option>'
+'<option value="1945">1945</option>'
+'<option value="1944">1944</option>'
+'<option value="1943">1943</option>'
+'<option value="1942">1942</option>'
+'<option value="1941">1941</option>'
+'<option value="1940">1940</option>'
+'<option value="1939">1939</option>'
+'<option value="1938">1938</option>'
+'<option value="1937">1937</option>'
+'<option value="1936">1936</option>'
+'<option value="1935">1935</option>'
+'<option value="1934">1934</option>'
+'<option value="1933">1933</option>'
+'<option value="1932">1932</option>'
+'<option value="1931">1931</option>'
+'<option value="1930">1930</option>'
			+'</select>'							
			+'<div id="bdate_err_display" class="error_txt"></div></td>'
	  +'</tr>'
	  +'<tr>'
		+'<td class="label" valign="top"><span class="arrow_orange_rr">zip code</span></td>'								
		+'<td><input name="zip" class="field w_50" maxlength="5" value="" id="zip">'
			+'<div id="zip_err_display" class="error_txt"></div></td>'
	  +'</tr>'
	  
	  +'<tr>'
		+'<td class="label" valign="top">'
			+'<input name="terms" type="checkbox" value="y"></td>'
		+'<td>I acknowledge that I have read and<br>agree to the <a href="/terms" target="_new">terms of use</a>'
			+'<div id="terms_err_display" class="error_txt"></div></td>'
	  +'</tr>'
	  +'<tr>'
		+'<td class="label">&nbsp;</td>'
		+'<td><div class="buttons">'
				+'<input type="submit" class="button" name="join" value="join redboxfriends">'
				+'<span class="cursor link" onclick="cancel_join()">cancel</span>'
			+'</div></td>'
	  +'</tr>'
	+'</table>'
	+'</form></div></div>';
	eID('join_content').innerHTML = join_body;
}

var cancel_join = function(){
	document.body.removeChild(eID('background_faded'));
	document.body.removeChild(eID('fade_overlay'));
}

function feb_exception(year){
	return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function validate_date(month, day, year){
	var february = feb_exception(year);
	var daysInMonth = new Array(0 ,31, february, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);	
	if(day > 0 && day <= daysInMonth[month] && year != 0){
		return true;
	}
	return false;
}
function zipverify(zipObject){
     var filter = new RegExp(/(^\d{5}$)/); 
     return filter.test(zipObject);
}
function radio_button_checker(button){
	var r_sel = false;
	for (index=0; index<eval("document.join."+button+".length"); index++){
		if (eval("document.join."+button+"[index].checked"))
		r_sel = true; 
	}
	if (!r_sel){
		return false;	
	}
	return true;	
}
function radio_button_value(button) {
	if(!button)	return '';
	var radioLength = button.length;
	if(radioLength == undefined)
		if(button.checked)
			return button.value;
		else
			return '';
	for(var i = 0; i < radioLength; i++) {
		if(button[i].checked) {
			return button[i].value;
		}
	}
	return '';
}
function form_check(form){
	
	error_found = false;
	
	if(trim(form.email.value)==''){
		show('email_err_display');
		eID('email_err_display').innerHTML = 'Missing email address.';
		error_found = true;
	}
	else{		
		eID('email_err_display').innerHTML = '';
		hide('email_err_display');
	}	
	if(trim(form.screen_name.value)==''){
		show('screen_name_err_display');
		eID('screen_name_err_display').innerHTML = 'Missing screen name.';
		error_found = true;
	}
	else{		
		eID('screen_name_err_display').innerHTML = '';
		hide('screen_name_err_display');
	}	
	if(trim(form.pi.value)==''){
		show('pwd_err_display');
		eID('pwd_err_display').innerHTML = 'Missing password.';
		error_found = true;
	}
	else if(trim(form.pi.value).length < 6){
		show('pwd_err_display');
		eID('pwd_err_display').innerHTML = 'Password must contain 6 or more characters.';
		error_found = true;
	}
	else if(!pwdverify(trim(form.pi.value))){
		show('pwd_err_display');
		eID('pwd_err_display').innerHTML = 'Password may consist of letters and numbers only.';
		error_found = true;
	}	
	else{		
		eID('pwd_err_display').innerHTML = '';
		hide('pwd_err_display');
		
	}	
	if(!radio_button_checker('gender')){
		show('gender_err_display');		
		eID('gender_err_display').innerHTML = 'Missing gender.';
		error_found = true;
	}
	else{		
		eID('gender_err_display').innerHTML = '';
		hide('gender_err_display');
	}	
	if(!validate_date(form.bmonth.value, form.bday.value, form.byear.value)){
		show('bdate_err_display');		
		eID('bdate_err_display').innerHTML = 'Enter a valid date.';
		error_found = true;
	}
	else{		
		eID('bdate_err_display').innerHTML = '';
		hide('bdate_err_display');
	}
	if(trim(form.zip.value)==''){
		show('zip_err_display');		
		eID('zip_err_display').innerHTML = 'Missing zip code.';
		error_found = true;
	}
	else if(!zipverify(form.zip.value)){
		show('zip_err_display');		
		eID('zip_err_display').innerHTML = 'Zipcode has improper format.';
		error_found = true;
	}
	else{		
		eID('zip_err_display').innerHTML = '';
		hide('zip_err_display');
	}
	if(form.terms.checked == false){
		show('terms_err_display');
		eID('terms_err_display').innerHTML = 'Must check the box.';
		error_found = true;
	}
	else{		
		eID('terms_err_display').innerHTML = '';
		hide('terms_err_display');
	}	
	if(!error_found){
		var join_validate = new aJaX(join_validation);
		var validation_content = 'email=' + encodeURIComponent(trim(form.email.value));
		validation_content += '&screen_name=' + encodeURIComponent(trim(form.screen_name.value));
		validation_content += '&pi=' + encodeURIComponent(trim(form.pi.value));
		validation_content += '&gender=' + encodeURIComponent(radio_button_value(form.gender));
		validation_content += '&bday=' + encodeURIComponent(trim(form.bday.value));
		validation_content += '&bmonth=' + encodeURIComponent(trim(form.bmonth.value));
		validation_content += '&byear=' + encodeURIComponent(trim(form.byear.value));
		validation_content += '&zip=' + encodeURIComponent(trim(form.zip.value));
		validation_content += '&terms=' + encodeURIComponent(trim(form.terms.value));
		join_validate.modePOST('ajax/newjoin', validation_content);
	}
	return false;
}
function join_validation(aJaX_obj, AJX_response){
	
	AJX_response = eval(AJX_response);
	switch(AJX_response[0]){
		case 'err':
			if(AJX_response[1][0] != ''){
				show('email_err_display');
				eID('email_err_display').innerHTML = AJX_response[1][0];
			}
			if(AJX_response[1][1] != ''){
				show('screen_name_err_display');
				eID('screen_name_err_display').innerHTML = AJX_response[1][1];
			}
			if(AJX_response[1][2] != ''){
				show('pwd_err_display');
				eID('pwd_err_display').innerHTML = AJX_response[1][2];
			}
			if(AJX_response[1][3] != ''){
				show('gender_err_display');
				eID('gender_err_display').innerHTML = AJX_response[1][3];
			}
			if(AJX_response[1][4] != ''){
				show('bdate_err_display');
				eID('bdate_err_display').innerHTML = AJX_response[1][4];
			}
			if(AJX_response[1][5] != ''){
				show('zip_err_display');
				eID('zip_err_display').innerHTML = AJX_response[1][5];
			}
			if(AJX_response[1][5] != ''){
				show('terms_err_display');
				eID('terms_err_display').innerHTML = AJX_response[1][6];
			}
			break;
		case 'OK':
			join_body =
			'<h3 class="underline">ALMOST DONE</h3>'
			+'<div style="padding:30px 0">'
				+'<p>Thanks for registering! A confirmation email has been sent to<br><strong>'+AJX_response[1][0]+'</strong></p>'
				+'To complete the registration check your email and click on the provided link to activate your account.'
			+'</div>';
			eID('join_content').innerHTML = join_body;
			setTimeout(function() {cancel_join();}, 10000);
			break;
	}		
}