// JavaScript Document
$(document).ready(function() {

pub_reg_personal();
pub_reg_account();
pub_reg_business();
pub_reg_payment();

});


isFormValidated = {
	tabVar : '',
	initiateTabVar : function(temp){this.tabVar =  temp},
	form_0 : false, // pub_reg_personal //first form
	form_1 : false, // pub_reg_account
	form_2 : false, // pub_reg_business
	form_3 : false, // pub_reg_payment
	form_4 : false, // pub_reg_overview
	alertAll : function() { alert('0='+this.form_0+',1='+this.form_1+',2='+this.form_2+',3='+this.form_3+',4='+this.form_4);}
	
}

$(function(){
		   
	var $pubRegTabs = $('#tabs').tabs({
    select: function(event, ui) {
        var isValid = isPugRegValidated(ui.index);
        return isValid;
    	}
	});
	
	isFormValidated.initiateTabVar($pubRegTabs);
	
});

//------------------------------------------------>

	
function isPugRegValidated(clickedIndex)
{
	//isFormValidated.alertAll();
	var selected = isFormValidated.tabVar.tabs('option', 'selected');//tab index
	//alert(selected +" | click "+ clickedIndex);
	if(selected < clickedIndex)
	{

			var test = true;
		for(var i=selected;i<=clickedIndex;i++)
		{
			if(!eval('isFormValidated.form_'+selected))
				test = false;
		}
		return test;
	}
	else return true;
}
//------------------------------------------------>







function pub_reg_personal()
{
	var validation = $("#pub_reg_personal").validate({
		debug: true,
		errorElement: "label",
		//errorContainer: $("#warning, #summary"),
		errorPlacement: function(error, element) {
			error.appendTo( findParent(element, 'TD'));},
		rules: {
			first_name: "required",
			last_name:  "required",
			address:  "required",
			city:  "required",
			state:  "required",
			country:  "required",
			zip:  "required",
			phone:  "required",
			IMType:  { required: function(){ if($('IMScreenName').val()!=null || $('IMScreenName').val()!='undefined') return true; else return false; } },
			IMScreenName:  "required"
							
		},
		messages: {
			first_name: "<span>Please enter the First Name</span>",
			last_name: "<span>Please enter the Last Name</span>",
			address:  "<span>Please enter the Address</span>",
			city:  "<span>Please enter the City</span>",
			state:  "<span>Please enter the State</span>",
			country:  "<span>Please select the Country</span>",
			zip:  "<span>Please enter the zip</span>",
			phone:  "<span>Please enter the phone</span>",
			IMType:  "<span>Please select the IM Type</span>",
			IMScreenName:  "<span>Please enter the IMSN</span>"
				
		},
		invalidHandler: function() {
   			isFormValidated.form_0 = false;
  		},
		submitHandler: function(form) {
			isFormValidated.form_0 = true;
			$('#tabs').tabs('select', 1);
		},
		success: function(label) {
			// set &nbsp; as text for IE
			label.html("&nbsp;").addClass("checked");
			}
	});

}

function pub_reg_account()
{
		var validation = $("#pub_reg_account").validate({
		debug: true,
		errorElement: "label",
		//errorContainer: $("#warning, #summary"),
		errorPlacement: function(error, element) {
			error.appendTo( findParent(element, 'TD'));},
		rules: {
			signupEmail:{ required: true, email: true, remote: 'ajax_handle.php?work=emailAvailCheck'},
			signupPassword: {
				required:  true, //customizing for edit
				minlength: 6
			},
			signupPassword2: {
				required:  true, //customizing for edit
				equalTo: "#signupPassword",//bug fix, somthing should be there after this
				minlength: 6
				
			}					
		},
		messages: {
			signupEmail: {
				required: "<span>Please enter a valid e-mail address.</span>",
				remote: jQuery.format("<span>{0} is already in use. Please click here to <a href=\"index.php\">Login</a></span>")
			},
			signupPassword: {
				required: "<span>Please enter your desired password.</span>",
				minlength: "<span>Minimum Six(6) Characters.</span>"
			},
			signupPassword2: {
				required: "<span>Please enter your desired password.</span>",
				equalTo: "<span>Please enter the same password as above.</span>",
				minlength: "<span>Minimum Six(6) Characters.</span>"
			}			
		},
		invalidHandler: function() {
   			isFormValidated.form_1 = false;
  		},
		submitHandler: function(form) {
			isFormValidated.form_1 = true;
			$('#tabs').tabs('select', 2);
		},
		success: function(label) {
			// set &nbsp; as text for IE
			label.html("&nbsp;").addClass("checked");
		}
	});
		
}

function pub_reg_business()
{
		$("input[name='isIncentive']").change(function(){
			
			if($("input[name='isIncentive']:checked").val()=='true')
			{ 
				$('#incentiveType_space').show();
				$('#incentiveType_overview_space').show();
			}
			else
			{
				$('#incentiveType_space').hide();
				$('#incentiveType_overview_space').hide();
			}
		});
		
		var validation = $("#pub_reg_business").validate({
		debug: true,
		errorElement: "label",
		//errorContainer: $("#warning, #summary"),
		errorPlacement: function(error, element) {
			error.appendTo( findParent(element, 'TD'));},
		rules: {
			isIncentive: "required",
			incentiveType: { required: function(){
									if($("input[@name='isIncentive']:checked").val()=='true') return true;
									else return false;
								}}
			},
				
		messages: {
			isIncentive: "<span>please select</span>",
			incentiveType: "<span>please enter the Incentive Types</span>"
		},
		invalidHandler: function() {
   			isFormValidated.form_2 = false;
  		},
		submitHandler: function(form) {
			isFormValidated.form_2 = true;
			$('#tabs').tabs('select', 3);
		},
		success: function(label) {
			// set &nbsp; as text for IE
			label.html("&nbsp;").addClass("checked");
		}
	});
}

function pub_reg_payment()
{
		$("#payment_method").change(function(){
			
			if($(this).val()=='paypal')
			{
				$('#paypal_space').show();
				$('#paypal_overview_space').show();
			}
			else
			{
				$('#paypal_space').hide();
				$('#paypal_overview_space').hide();
			}
		});
		
		var validation = $("#pub_reg_payment").validate({
		debug: true,
		errorElement: "label",
		//errorContainer: $("#warning, #summary"),
		errorPlacement: function(error, element) {
			error.appendTo( findParent(element, 'TD'));},
		rules: {
			payment: "required",
			paypal: { required: function(){
									if($("#payment_method").val()=='paypal') return true;
									else return false;
								}},
			ss: "required"
			},
				
		messages: {
			payment: "<span>please select Type</span>",
			paypal: "<span>please enter the Paypal Email</span>",
			ss: "<span>please enter the Tax / SSN</span>"
		},
		invalidHandler: function() {
   			isFormValidated.form_3 = false;
  		},
		submitHandler: function(form) {
			isFormValidated.form_3 = true;
			pub_reg_overview();
		},
		success: function(label) {
			// set &nbsp; as text for IE
			label.html("&nbsp;").addClass("checked");
		}
	});
}

function pub_reg_overview()
{
	var regFormElements = new Array('first_name', 'last_name', 'address', 'address1', 'city', 'state', 'zip', 'country', 'phone', 'IMType', 'IMScreenName', 'signupEmail', 'signupPassword', 'password2', 'company', 'url', 'isIncentive', 'incentiveType', 'siteTraffic', 'payment', 'payment_method', 'paypal', 'paymentThreshold', 'ss');
	
	for(var i=0;i<regFormElements.length;i++)
	{
		$('#'+regFormElements[i]+'_view').html($('#'+regFormElements[i]).val());
	}
	
	//to display check box of promotion method checked value START	
	isLastPrint = false;
	htmlStr = '';
	for(i=1;i<=3;i++)
	{
		if($("input[name='promotionMethod"+i+"']:checked").val())
		{
			if(isLastPrint) htmlStr = htmlStr + ', ';
			htmlStr = htmlStr + $('#promotionMethod'+i).val(); 
			isLastPrint = true;
		}
	}
	$('#promotionMethod_view').html(htmlStr);
	//END
	

	$('#tabs').tabs('select', 4);
	isFormValidated.form_4 = true;
}

function publisherRegister(isAdmin)
{
	dataSuffix = '';
	successMessage = 'Your application has successfully been sent in for review. You will receive a verification email. Please click the link in the email in order to verify your email.';
	if(isAdmin){
		dataSuffix = '&isAdmin=true';
		successMessage = 'Affiliate Added Successfully.';
		}
	var str = $('#pub_reg_personal').serialize();
	str = str + '&' +$('#pub_reg_account').serialize();
	str = str + '&' +$('#pub_reg_business').serialize();
	str = str + '&' +$('#pub_reg_payment').serialize();
	//alert(str);
	$.ajax({
		  type: "POST",
		  url: "ajax_handle.php",
		  data: str+"&work=triggerRegister"+dataSuffix,
		  success: function(data){
			 //alert('|'+data+'|end');
			  if(data=='true')
			  {
			  		//alert('Your application is successfully sent for review. You will receive email about the status of it.');
					$('#tabs').tabs( 'remove' , 0);
					$('#tabs').tabs( 'remove' , 0);
					$('#tabs').tabs( 'remove' , 0);
					$('#tabs').tabs( 'remove' , 0);//removes first 4 tab
					$('#tabs #tabs-5').html(successMessage);
		  }
			else 
				alert('Error in processing your application. please try after some time');
			  
		  },
		  error: function (XMLHttpRequest, textStatus, errorThrown) {
			  //alert(XMLHttpRequest+"\n"+textStatus+"\n"+errorThrown);
			}

		   });
	
}

function findParent(element, required_parent)//2 level
{
	if(element.parent().get(0).tagName==required_parent)
		return element.parent();
	else if(element.parent().parent().get(0).tagName==required_parent)
		return element.parent().parent();

}