self.counter = 0;

function sugarDaddyValidate() {	
	var marked = false;
	jQuery.validator.addMethod("FullDate", function(value, element) {
    	if(jQuery("#DOBMonth").val() == "" || jQuery("#DOBDay").val() == "" || jQuery("#DOBYear").val() == "" || value == "") {
    	  	return false;
    	} else {
			return true;
    	}
  	}, 'Please provide a complete Date of Birth');

	jQuery("#Signup").validate({
		groups: {
			dateOfBirth:"BirthMonth BirthDay BirthYear"
		},
		rules: {
			DisplayName: {
				required: true,
				minlength: 4,
				remote: {
					url: "/json/checkdisplayname",
					type: "post",
					dataType: "json"
				}	
			},
			Email: {
				required: true,
				email: true,
				remote: {
					url: "/json/checkemail",
					type: "post",
					dataType: "json"
				}
			},
			Password: "required",
			BirthMonth: "FullDate",
			BirthDay: "FullDate",
			BirthYear: "FullDate",
			Occupation: "required",
			NetWorth: "required"
		},
		messages: {
			DisplayName: {
				required: "Please enter your Display Name",
				remote: "This Display Name is already taken"
			},	
			Email: {
				required: "Please enter a valid Email Address",
				email: "Please enter a valid Email Address",
				remote: "This Email currently has an account"
			},	
			Password: "Please provide a Password",
			Occupation: "Please enter your Occupation",
			NetWorth: "Please select your Net Worth"
		},
		submitHandler: function(form) {
			$('form#Signup input[type=submit]').attr('disabled', 'disabled');
			form.submit();
		},	
		errorPlacement:function(error,element){
      		var elid = element.attr('id');
      		if (elid == 'DOBMonth' || elid == 'DOBDay' || elid == 'DOBYear') {
      			jQuery('#DOBYear').after(error);	
      		} else {
      			element.after(error);
      		}
    	},
		highlight: function(element) {
        	if (jQuery(element).parent().children('p')) {
				jQuery(element).parent().children('p').css('display', 'none');
			}
	    },
	    unhighlight: function(element) {
	        if (jQuery(element).parent().children('p')) {
	        	jQuery(element).parent().children('label.error').css('display', 'none');
				jQuery(element).parent().children('p').css('display', 'block');
			}
	    }
	});
}

function sugarBabyValidate() {
	var marked = false;	
	jQuery.validator.addMethod("FullDate", function(value, element) {
    	if(jQuery("#DOBMonth").val() == "" || jQuery("#DOBDay").val() == "" || jQuery("#DOBYear").val() == "" || value == "") {
    	  	return false;
    	} else {
			return true;
    	}
  	}, 'Please provide a complete Date of Birth');
  	
	jQuery("#Signup").validate({
		groups: {
			dateOfBirth:"BirthMonth BirthDay BirthYear"
		},
		rules: {
			DisplayName: {
				required: true,
				minlength: 4,
				remote: {
					url: "/json/checkdisplayname",
					type: "post",
					dataType: "json"
				}	
			},
			Email: {
				required: true,
				email: true,
				remote: {
					url: "/json/checkemail",
					type: "post",
					dataType: "json"
				}
			},
			Password: "required",
			BirthMonth: "FullDate",
			BirthDay: "FullDate",
			BirthYear: "FullDate",
			City: "required",
			ZipCode: {
				required: {
					depends: function(el) {
						if (jQuery('#CountryCode').val() == 'US') {
							return true;
						} else {
							return false;
						}
					}
				},
				minlength: function(el) {
					if (jQuery('#CountryCode').val() == 'US') {
						return 5;
					} else {
						return false;
					}
				},	
				digits: {
					depends: function(el) {
						if (jQuery('#CountryCode').val() == 'US') {
							return true;
						} else {
							return false;
						}
					}
				}
			},
			CountryCode: "required",
			StateCode: "required",
			Allowance: "required",
			BodyType: "required",
			Ethnicity: "required",
			Headline: {
				required: true,
				minWords: 2
			},
			Occupation: "required",
			Education: "required",
			Height: "required",
			SmokingHabit: "required",
			DrinkingHabit: "required",
			EyeColor: "required",
			HairColor: "required",
			MaritalStatus: "required",
			Description: {
				required: true,
				minWords: 10
			}, 
			LookingFor: {
				required: true,
				minWords: 10
			} 
		},
		messages: {
			DisplayName: {
				required: "Please enter your Display Name",
				remote: "This Display Name is already taken"
			},
			Email: {
				required: "Please enter a valid Email Address",
				email: "Please enter a valid Email Address",
				remote: "This Email currently has an account"
			},
			Password: "Please provide a Password",	
			CountryCode: "Please enter your Country",
			StateCode: "Please enter your State",
			City: "Please enter your City",
			ZipCode: "Please enter a valid ZipCode",
			Allowance: "Please enter your Allowance",
			BodyType: "Please enter your Body Type",
			Ethnicity: "Please enter your Ethnicity",
			Headline: {
				required: "Please enter your Headline"
			},
			Occupation: "Please enter your Occupation",
			Education: "Please enter your Education",
			Height: "Please enter your Height",
			SmokingHabit: "Please enter your Smoking Habit",
			DrinkingHabit: "Please enter your Drinking Habit",
			EyeColor: "Please enter your Eye Color",
			HairColor: "Please enter your Hair Color",
			MaritalStatus: "Please enter your Marital Status",
			Description: {
				required: "Please Describe yourself"
			},
			LookingFor: {
				required: "Please Describe your perfect arrangement"
			}
		},
		submitHandler: function(form) {
			$('form#Signup input[type=submit]').attr('disabled', 'disabled');
			form.submit();
		},
		errorPlacement:function(error,element){
      		var elid = element.attr('id');
      		if (elid == 'DOBMonth' || elid == 'DOBDay' || elid == 'DOBYear') {
      			jQuery('#DOBYear').after(error);	
      		} else {
      			element.after(error);
      		}
    	},
    	highlight: function(element) {
	    }
	});
}

function createSignupObject() {
	var signupObject = {};
	jQuery('#Signup input, #Signup select, #Signup textarea').each(function(i, el) {
		var fieldName = jQuery(el).attr('name');
		var fieldValue = jQuery(el).val();
		signupObject[fieldName] = fieldValue;
	});
	
	return signupObject;
}

function initSignupType() {
	jQuery('#SignupType').change(function() {
		var st = jQuery(this).val();
		//var signupObject = createSignupObject();

		//jQuery.post("/json/signup", signupObject, function(data) {
			if (st == "SugarDaddy" && document.location.pathname != "/signup/sugardaddy") {				
				document.location = "/signup/sugardaddy";
			} else if (st == "SugarBaby" && document.location.pathname != "/signup/sugarbaby") {
				document.location = "/signup/sugarbaby";
			}
		//}, 'json');
	});

	jQuery('input[name="PrivateAccount"]').click(function(event) {
		if (jQuery(this).val() == "yes") {
			document.location = "/signup/sugardaddy/type/private";
		} else {
			document.location = "/signup/sugardaddy/type/public";
		}
		
		
		/*
		if (jQuery(this).val() == "no") {
			jQuery('#Headline, #Description, #LookingFor').val("");
		} else {
			if (jQuery('#SignupType').val() == "SugarDaddy") {
				jQuery('#Occupation').val("Private");
			}
			jQuery('#Headline').val("Private Account");
			jQuery('#Description, #LookingFor').val("Member's information is private, send them a message to learn more.");
		}
		*/
	});
	
	jQuery('#CountryCode').change(function() {
		jQuery.post("/ajax/", {type:jQuery(this).val()}, function(data){
			jQuery('#StateCode').html(data);
		});
	});
	
	jQuery('#AddMore').click(function(event) {
		event.preventDefault();
		jQuery('#DetailsCollapsed').css('display', 'none');	
		jQuery('#DetailsExpanded').css('display', 'block');
	});
	
	jQuery('#HideMore').click(function(event) {
		event.preventDefault();
		jQuery('#DetailsExpanded').css('display', 'none');	
		jQuery('#DetailsCollapsed').css('display', 'block');
	});		
}

function uploadButton(id){
	new AjaxUpload("upload_button_id_"+id, {
		action: '/photo/upload/',
		name: 'Filedata',
		data: {
			"soid" : id,
			"put": "temp"
		},
		autoSubmit: true,
		responseType: false,
		onChange: function(file, extension){},
		onSubmit: function(file, extension) {
			alert("Please allow up to 2 minutes for your picture to upload.");
		},
		onComplete: function(file, response) {
			if (response) {
				dialogBox("", '<p class="middle">'+response+'</p>', {}, null, false, 400, 100, null, null, true);
			}
		},
		onSubmit : function(file , ext){
			if (! (ext && /^(jpg|jpeg|gif)$/.test(ext))){
				// extension is not allowed
				alert('Error: Image must be of type jpg or gif.');
				// cancel upload
				return false;
			}
		}
	});
}

function add_stat(url){
         jQuery.post(url, { type: "stats"},function(data){});
};

function manageControls(position, numberOfSlides) {
	if(position === 0){ 
		jQuery('#prev-control').attr('class', 'prev-control-inactive');
	} else{ 
		jQuery('#prev-control').attr('class', 'prev-control control-item');
	}
	
	if(position == numberOfSlides-1 || numberOfSlides === 0){ 
		jQuery('#next-control').attr('class', 'next-control-inactive');
	} else{ 
		jQuery('#next-control').attr('class', 'next-control control-item'); 
	}
};

function avatarSlide(container, slides, control, counter) {				
	var currentPosition = 0;
	var slideWidth = 495;
	var padding = 80;
	var numberOfSlides = slides.length;
	var totalWidth = (slideWidth * numberOfSlides) + (padding * numberOfSlides);		
		
	if (numberOfSlides > 0) {
		slides.wrapAll('<div id="slideInner"></div>').css({'float' : 'left', 'width' : slideWidth});
		jQuery('#slideInner').css('width', totalWidth);
		if (counter) {
			counter.html((currentPosition+1)+' of '+numberOfSlides);
		}			
	}			

	manageControls(currentPosition, numberOfSlides);
	
	control.live('click', function(){
		currentPosition = (jQuery(this).attr('id')=='next-control') ? currentPosition+1 : currentPosition-1;
	
		manageControls(currentPosition, numberOfSlides);
		jQuery('#slideInner').animate({
			'marginLeft': (slideWidth+padding)*(-currentPosition)
		});
		if (counter) {
			counter.html((currentPosition+1)+' of '+numberOfSlides);
		}	
	});
};			  	

function avatarSelection() {
	jQuery('input:checked').parent().addClass('avatar-selected');
			
	jQuery('.avatar img').click(function(event) {
		var currCheckBox = jQuery(this).next('input:checkbox');
		var currParent = jQuery(this).parent();
		var ic = jQuery('input:checked').length;
		var awsc = parseInt(jQuery('input[name="PhotoCount"]').val());
		var totalCount = parseInt(ic+awsc);
		
		if (!currCheckBox.attr('checked') && totalCount >= 4) {
			jQuery(this).removeAttr('checked');
			parent.dialogBox("", '<p class="middle">A maximum of four photos can be selected</p>', {}, null, false, 400, 100, null, null, true);
		} else {
			if (totalCount <= 4) {
				if (currCheckBox.attr('checked')) {
					currCheckBox.removeAttr('checked');
					currParent.removeClass('avatar-selected');
				} else {
					currCheckBox.attr('checked', 'checked');
					currParent.addClass('avatar-selected');
				}	
			} else {
				parent.dialogBox("", '<p class="middle">A maximum of four photos can be selected</p>', {}, null, false, 400, 100, null, null, true);
			}	
		}
	});
	
	jQuery('input:checkbox').click(function(event) {
		var ic = jQuery('input:checked').length;
		var awsc = parseInt(jQuery('input[name="PhotoCount"]').val());
		var totalCount = parseInt(ic+awsc);
	
		if (totalCount > 4) {
			jQuery(this).removeAttr('checked');
			parent.dialogBox("", '<p class="middle">A maximum of four photos can be selected</p>', {}, null, false, 400, 100, null, null, true);
		} else {
			if (!jQuery(this).attr('checked')) {
				jQuery(this).parent().removeClass('avatar-selected');
			} else {
				if(totalCount <= 4) {
					jQuery(this).parent().addClass('avatar-selected');
				} else {
					parent.dialogBox("", '<p class="middle">A maximum of four photos can be selected</p>', {}, null, false, 400, 100, null, null, true);
				}
			}
		}	
	});
}

function closeOverlay(message) {
	tb_remove();
	if (message) {
		dialogBox("", '<p class="middle">'+message+'</p>', {}, null, false, 400, 100, null, null, true);
	}	
}

jQuery(document).ready(function() {
	initSignupType();
	avatarSelection();
});	

