$(document).ready(function() {
	// Select all the a tag with name equal to modal
	var original_tagname = '';
	var modal_target_url = '';
	
	$('[rel=modal_reg]').click(function(e) {
		e.preventDefault();

		/**
		 * Using the HREF as the id fucks up when there is an actual HREF attached to the modal event, and the HREF is 
		 * not an absolute URL. Javascript thinks you're trying to do XPath when it's "/page/subpage". Dropping the 
		 * .attr('href') lookup on id works the same. And as most instances of the modal are being kicked off from
		 * buttons, id would have been empty anyways.
		 * 
		 * @ignore
		 * @author Jon Ursenbach
		 */
		var id = $(this); //.attr('href');
 
		original_tagname = this.tagName;
		if (original_tagname != 'BUTTON') {
			modal_target_url = $(this).attr('target_url');
		} else {
			if ($.browser.msie && $.browser.version.substr(0, 1) < 7) {
			    $(this).parents("form").children().find("select").hide();
				//$(this).siblings().find('select').hide();
			}
		}
		
		// Get the screen height and width
		var maskHeight = $(document).height();
		var maskWidth = $(window).width();
	
		// Set heigth and width to mask to fill up the whole screen
		$('#mask').css({
			'width': maskWidth,
			'height':maskHeight
		});
		
		// Transition effect		
		$('#mask').fadeIn(1000);	
		$('#mask').fadeTo("slow", 0.8);	
	
		// Get the window height and width
		var winH = $(window).height();
		var winW = $(window).width();
              
		// Set the popup window to center
		$(id).css('top',  winH / 2 - $(id).height() / 2);
		$(id).css('left', winW / 2 - $(id).width() / 2);
	
	
	    //Display Login, instead of registration
	    if (id.attr('type') == 'login') {
	        $('#modal_register_content').hide();
    		$('#modal_login_content').show();
	    } else {
	        $('#modal_register_content').show();
    		$('#modal_login_content').hide();
	    }
	
		// Transition effect
		$(id).fadeIn(2000);
		$('.window').toggle('slow');
	});
	
	// If close button is clicked
	$('.window .close').click(function (e) {
		if (original_tagname == 'BUTTON') {
			if ($.browser.msie && $.browser.version.substr(0, 1) < 7) {
				$('[rel=modal_reg]').parents("form").children().find("select").show();
				//$('[rel=modal_reg]').siblings().find('select').show();
			}
		}

		e.preventDefault();
		$('#mask, .window').hide();
	});		
	
	// If mask is clicked
	$('#mask').click(function () {
		if (original_tagname == 'BUTTON') {
			if ($.browser.msie && $.browser.version.substr(0, 1) < 7) {
				$('[rel=modal_reg]').parents("form").children().find("select").show();
				//$('[rel=modal_reg]').siblings().find('select').show();
			}
		}
		
		$(this).hide();
		$('.window').hide();
	});
	
	$('[nameforjs=modal_register_submit]').click(function(e) {
		e.preventDefault();
		$('[errorfor]').hide();
		
		var email = $('input:[rel=modal_email]').val();
		var pass1 = $('input:[rel=modal_pass1]').val();
		var pass2 = $('input:[rel=modal_pass2]').val();
		var fname = $('input:[rel=modal_fname]').val();
		var lname = $('input:[rel=modal_lname]').val();
		var postalcode = $('input:[rel=modal_postalcode]').val();
		var designerflag = $('input:[rel=modal_designerflag]:checked').val();
		if (typeof designerflag == 'undefined') {
			designerflag = 'consumer';
		}
		
		var targetURL = $('input:[rel=modal_registration_post]').val();
		var errorhtml = '';
		var error = 0;

		if (email.length == 0) {
			$('[errorfor=emailmissing]').show();
			error = 1;
		} 
		
		if (pass1.length == 0 ) {
			$('[errorfor=password1missing]').show();
			error = 1;
		}
		
		if (pass2.length == 0) {
			$('[errorfor=password2missing]').show();
			error = 1;
		}
		
		if (pass1 != pass2) {
			$('[errorfor=passwordmismatch]').show();
			error = 1;
		}
		
		if (fname.length == 0) {
			$('[errorfor=fnamemissing]').show();
			error = 1;
		}
		
		if (lname.length == 0) {
			$('[errorfor=lnamemissing]').show();
			error = 1;
		}
		
		if (postalcode.length == 0) {
			$('[errorfor=postalcodemissing]').show();
			error = 1;
		}
		
		if (error == 0) {
			$('#regerror').hide();
			$('#regerror').html('');
            
            if (original_tagname == 'BUTTON') {
				// $('[rel=modal_reg]').parents('form').submit(); Going to need alot more logic here http://www.html-form-guide.com/php-form/php-form-submit.html
                var url = location.href;    // We're not longer submitting forms.
			} else if( modal_target_url ){
				var url = modal_target_url;
			} else {
			    var url = "default";
			}
				
			var datastr = {email : email , pass1 : pass1 , pass2 : pass2 , fname : fname , lname : lname, postalcode : postalcode, designerflag : designerflag, redirecturl : url};
			$.post(targetURL, datastr, function(e){ // targetURL = http://web2.decorati.com/logan/trunk/quickreg/register
				var success = $.evalJSON(e).success;
				if (success) {
					$('#modal_register_content').hide();
					
					// we need to reset the form here!!!
					$('#mask, .window').hide();
					
					var redirect = $.evalJSON(e).redirect_url;
										
					if ( redirect ) {
					    modal_target_url = redirect;
					}
					
					if (original_tagname == 'BUTTON') {
						// $('[rel=modal_reg]').parents('form').submit(); No Mas Form submission
						window.location.href = modal_target_url;
					} else if( modal_target_url ){
						window.location.href = modal_target_url;
					} else {
					    location.reload(true);
					}
					//$('#modal_register_success').show();
					//all clicks should close the modal
					//Or possibly submit the form/link that triggered modal
				} else {
					var errorCodes = $.evalJSON(e).errorCodes;
					var errorList = errorCodes.split(",");
					for (i=0; i<errorList.length; i++) {
						switch (errorList[i]) {						
							case 'emailinuse':
								$('[errorfor=emailinuse]').show();
							break;
							
							case 'invalidemail':
								$('[errorfor=invalidemail]').show();
							break;
								
							case 'emailmissing':
								$('[errorfor=emailmissing]').show();
							break;
								
							case 'password1missing':
								$('[errorfor=password1missing]').show();
							break;
								
							case 'password2missing':
								$('[errorfor=password2missing]').show();
							break;
								
							case 'passwordmismatch':
					            $('[errorfor=passwordmismatch]').show();
							break;
								
							case 'fnamemissing':
								$('[errorfor=fnamemissing]').show();
							break;
								
							case 'lnamemissing':
								$('[errorfor=lnamemissing]').show();
							break;
								
							case 'invalidpostalcode':
								$('[errorfor=invalidpostalcode]').show();
							break;
								
							case 'postalcodemissing':
								$('[errorfor=postalcodemissing]').show();
							break;
							
							case 'invalidpostalcode':
							    $('[errorfor=invalidpostalcode]').show();
							break;
						}
					}
				}
			});
		} else {
			$('#regerror').html(errorhtml);
			$('#regerror').show();
		}
	});
	
	$('[nameforjs=modal_login_submit]').click(function(e) {
		e.preventDefault();
		$('[errorfor]').hide();
		
		var targetURL = $('input:[rel=modal_login_post]').val();
		var email = $('input:[rel=modal_emailaddr]').val();
		var password = $('input:[rel=modal_password]').val();
		var error = 0;

		if (email.length == 0) {
			$('[errorfor=login]').show();
			error = 1;
		} 
		
		if (password.length == 0 ) {
			$('[errorfor=login]').show();
			error = 1;
		}
		
		if (error == 0) {
			$('#loginerror').hide();
			$('#loginerror').html('');
			
			if (original_tagname == 'BUTTON') {
				$('[rel=modal_reg]').parents('form').submit(); //Going to need alot more logic here http://www.html-form-guide.com/php-form/php-form-submit.html
			} else if( modal_target_url ){
				var url = modal_target_url;
			} else {
			    var url = "default";
			}
			
			var datastr = {email : email , password : password, redirecturl : url } ; 
			$.post(targetURL, datastr, function(e){
				var success = $.evalJSON(e).success;
				if (success) {
					$('#modal_register_content').hide();
					// we need to reset the form here!!!
					$('#mask, .window').hide();
					
					var redirect = $.evalJSON(e).redirect_url;
										
					if ( redirect ) {
					    modal_target_url = redirect;
					}
					
					if (original_tagname == 'BUTTON') {
						$('[rel=modal_reg]').parents('form').submit();
					} else if( modal_target_url ){
						window.location.href = modal_target_url;
					} else {
					    location.reload(true);
					}
					
					//$('#modal_register_success').show();
					// all clicks should close the modal
					// Or possibly submit the form/link that triggered modal
				} else {
					$('[errorfor=login]').show();
				}
			});
		} else {
			$('[errorfor=login]').show();
		}
	});
	
	$('#modal_register_link').click(function(e) {
		e.preventDefault();
		$('#modal_login_content').hide();
		$('#modal_register_content').show();
	});
	
	$('#modal_login_link').click(function(e) {
		e.preventDefault();
		$('#modal_register_content').hide();
		$('#modal_login_content').show();
	});	
});