$(document).ready(function(){
	pageTracker._trackPageview("/partner/step_1");
	function emptyObject(obj) {
	    for (var i in obj) {
	        return false;
	    }
	    return true;
	}
	// set select of country for US users
	function chselect(country){
		$("#country").val(country);
		if (country == "US"){
			$("#state_tr").fadeIn();
		}else{
			$("#state option:first").attr("selected","yes");
			$("#state_tr").hide();
		}
	}
	chselect("US");
	$("#country").change(function(){
		chselect($(this).val());
	});
	// set cookies oject
	var elobj = {
		name: $("#join-partner input[name=name]"),
		company: $("#join-partner input[name=company]"),
		title: $("#join-partner input[name=title]"),
		email: $("#join-partner input[name=email]"),
		website: $("#join-partner input[name=website]"),
		phone: $("#join-partner input[name=phone]"),
		where: $("#join-partner textarea[name=where]"),
		comments: $("#join-partner textarea[name=comments]"),
		address: $("#join-partner input[name=address]"),
		city: $("#join-partner input[name=city]"),
		state: $("#state"),
		zip: $("#join-partner input[name=zip]"),
		country: $("#country")
	};
	// set cookies
	var coockobj = {};
	for(var key in elobj)
		if($.cookie(key)){
			coockobj[key] = $.cookie(key);
			elobj[key].val($.cookie(key));
		}
		if ($.cookie(key) == "US"){
			var stcook = $.cookie("state");
			$("#state").val(stcook);
			chselect($.cookie(key));
		}
	if($.cookie("country")){
		chselect($.cookie("country"));
	}

	/**
	 * form validation
	 */
	$("#join-partner").validate({
		rules: {
			name: "required",
			company: "required",
			title: "required",
			email: {
				required: true,
				email: true
			},
			website: "required",
			state:{
				required:function(el){
					var elval = $("#country option:selected").val() == "US";
					return elval;
				}
			},
			phone: {
				required: true,
				phoneUS: true
			},
			where: "required",
			address: "required",
			city: "required",
			zip: "required"
		},
		onfocusout: false,
		onkeyup: false
	});
	// form steps
	$("#partner_next").click(function(){
		var sname = $("#join-partner").validate().element("#name");
		var scompany = $("#join-partner").validate().element("#company");
		var stitle = $("#join-partner").validate().element("#title");
		var semail = $("#join-partner").validate().element("#email");
		var swebsite = $("#join-partner").validate().element("#website");
		var sphone = $("#join-partner").validate().element("#phone");
		var swhere = $("#join-partner").validate().element("#where");

		if (sname && scompany && stitle && semail && swebsite && sphone && swhere) {
			$("#reg_step1").hide();
			$("#reg_step2").fadeIn();
			pageTracker._trackPageview("/partner/step_2");
		}
	});
	$("#partner_back").click(function(){
		$("#reg_step2").hide();
		$("#reg_step1").fadeIn();
	});

	$("#join-partner").submit( function() {
		if ($("#join-partner").validate().form() == true) {
			// Form elements object
			var parelval = {
				name: $("#join-partner input[name=name]"),
				company: $("#join-partner input[name=company]"),
				title: $("#join-partner input[name=title]"),
				email: $("#join-partner input[name=email]"),
				website: $("#join-partner input[name=website]"),
				phone: $("#join-partner input[name=phone]"),
				where: $("#join-partner textarea[name=where]"),
				comments: $("#join-partner textarea[name=comments]"),
				address: $("#join-partner input[name=address]"),
				city: $("#join-partner input[name=city]"),
				state: $("#state option:selected"),
				zip: $("#join-partner input[name=zip]"),
				country: $("#country option:selected")
			};

			// create cookies
			for(var key in parelval){
				$.cookie(key,parelval[key].val(),{expires: 0, path: '/', domain: window.location.host});
			}

			var subscribe;
			if ($("input[name=subscribe]").is(":checked")) {
				subscribe = $("input[name=subscribe]").val();
			}else {
				subscribe = 'no';
			}

			// Nimble object
			var nimbdata = {
				name: parelval.name.val(),
				company: parelval.company.val(),
				title: parelval.title.val(),
				email: parelval.email.val(),
				website: parelval.website.val(),
				phone: parelval.phone.val(),
				where: parelval.where.val(),
				comments: parelval.comments.val(),
				address: parelval.address.val(),
				city: parelval.city.val(),
				state: parelval.state.text(),
				zip: parelval.zip.val(),
				country: parelval.country.text(),
				subscribe: subscribe,
				partner: "sol"
			};

			// send recive ajax data
			$.ajax({
				type: "GET",
				url: "http://"+ window.location.host +"/lib/partner.php",
				data: "name="+parelval.name.val()+
					"&company="+parelval.company.val()+
					"&title="+parelval.title.val()+
					"&email="+parelval.email.val()+
					"&website="+parelval.website.val()+
					"&phone="+parelval.phone.val()+
					"&where="+parelval.where.val()+
					"&comments="+parelval.comments.val()+
					"&address="+parelval.address.val()+
					"&city="+parelval.city.val()+
					"&state="+parelval.state.text()+
					"&zip="+parelval.zip.val()+
					"&country="+parelval.country.text()+
					"&subscribe="+subscribe,
				beforeSend: function(){
					$("#join-partner").fadeOut("normal", function() {
						$("#form-success").html("<div class='ajax_req' id='load' style='text-align:center;'><p>Please wait...</p><p><img src='http://www.nimble.com/wp-content/themes/nimble/images/load.gif' alt=''></p></div>").fadeIn("normal");
					});
				},
				success: function(){
					$.ajax({
						type:"POST",
						url: "http://"+ window.location.host +"/lib/nimble_crm.php",
						data: nimbdata,
						error: function(){
							$("#form-success").html("<div class='ajax_req' style='text-align:center;'><p style='padding: 10px 0px;'><strong>Server error</strong></p></div>").show();
						},
						success: function(data){
							pageTracker._trackPageview("/partner/submitted");
							$("#form-success").html("<p><strong>"+parelval.name.val()+"</strong>,<br/>"+data+"</p></div>").show();
							if(data != 'Server error!')
							$('#sol_info_box').hide();
						}
					});
				},
				error: function(){
					$("#form-success").html("<div class='ajax_req' style='text-align:center;'><p style='padding: 10px 0px;'><strong>Server error</strong></p></div>").show();
				}
			});
		}else {
			return false;
		}
		return false;
	});
});
