$(document).ready(function () {

	$('#OtherThanAdm').click(function () {
	
		if($('#txtTechInitials').length == 0) {
	
			$.post('/?action=otherThanAdm', '', function (response) {
		
				$('#OtherThanAdm').parents('tr').after(response);
		
			});
		
		} else {
		
			$('tr.techContact').fadeOut(function(){ 
			
				$('tr.techContact :input').val('');
				$('tr.techContact').remove();
				
			});
		
		}
	
	});
	
	$('#OtherThanConnection').click(function () {
	
		if($('#txtCompCompany').length == 0) {
	
			$.post('/?action=otherThanConnection', '', function (response) {
		
				$('#OtherThanConnection').parents('tr').after(response);
		
			});
		
		} else {
		
			$('tr.company').fadeOut(function(){ 
			
				$('tr.company :input').val('');
				$('tr.company').remove();
				
			});
		
		}
	
	});
	
	
	if($('div#links').length == 1) {
	
		$('div#links a').each(function() {
	
			$(this).before('<input type="checkbox" class="link_checkboxes" /> ')		
		
		});
	
	}
	
	$('#txtGeneralConditions').click(function() {
		
		$('div#links input').each(function() {

			if($('#txtGeneralConditions').attr('checked') == false) {
			
				$(this).attr({'checked': false});
				
			} else {
			
				$(this).attr({'checked': true});
			
			}	
	
		});
		
	});
	
	$('.link_checkboxes').click(function() {
	
		if($(this).attr('checked') == false) {
		
			$('#txtGeneralConditions').attr({'checked': false});	
		
		}
	
	});
	
	
	
	$('.transferProductLink').click(function() {
		
		$('.transferProductLink').each(function() {
			
			$(this).removeClass('active');
			
		});
		
		$(this).addClass('active');
		
		$('input[name=txtProductId]').val($(this).attr('prodid'));
		
	});
	
	if($('#transferStep1').length > 0) {
	
		$("#txtInternetSecurity").click(function() {
			
			if($("#txtInternetSecurity").attr('checked') == true) {
			
				$("#txtInternetSecurityAdvanced").attr({checked: false});
				$("#txtInternetSecurityAdvancedPackets").val('');
			
			}
			
		});
		
		$("#txtInternetSecurityAdvanced").click(function() {
			
			if($("#txtInternetSecurityAdvanced").attr('checked') == true) {
			
				$("#txtInternetSecurity").attr({checked: false});
				$("#txtInternetSecurityPackets").val('');
			
			}
			
		});
		
		if($('#dateEndSubscription').length > 0) {
		
			$('#dateEndSubscription').datepicker({ 
		
			    beforeShowDay: $.datepicker.noWeekends,
			    minDate: 0, 
			    //maxDate: 365,
			    showOn: "both", 
			    buttonImage: "/img/shared/calendar.gif", 
			    dateFormat: "dd-mm-yy",
			    buttonImageOnly: true 
	    
			});
			
			$("#txtZip").mask("9999aa");
			
		}

	
		if($('.checkAvailability').click(function() {
			
			var zip = $('#txtZip').val();
			var number = $('#txtNumber').val();
			var number_add = $('#txtNumberAdd').val();
			
			$.post('/?action=checkAvailability', {product_group : $('#product_group').val(), zip: zip, number: number, number_add: number_add}, function (response) {
			
				if(response == "NOK") {
						
					$('input[name=proceed]').val('');
					$('#availabilityResult').hide().html('De dienst is niet beschikbaar op uw adres').fadeIn();
					
				} else {
				
					$('input[name=proceed]').val('1');
					$('#availabilityResult').hide().html('De dienst is beschikbaar op uw adres').fadeIn();
					
				}
				
			});
		
		}));
		
		
	 	$("#transferStep1").validate({
			rules: {
				txtZip: {
					required: true,
					zip: true
				},
				txtNumber:  {
					required: true,
					digits: true
				},
				proceed: "required"
			},
			messages: {
				txtZip: {
					required: " Postcode is verplicht",
					zip: " Onjuiste postcode"
				},
				txtNumber: {
					required: " Huisnummer is verplicht",
					digits: " Onjuist huisnummer"
				},
				proceed: "Deze dienst is niet beschikbaar op uw adres"
			}
		});
		
		$('#submitTranfer1').click(function() {
			
			var zip = $('#txtZip').val();
			var number = $('#txtNumber').val();
			var number_add = $('#txtNumberAdd').val();
			
			if(zip == "") {
		
				$('#availabilityResult').html('Vul uw postcode in').fadeIn();
				return false
				
			}
			
			if(number == "") {
			
				$('#availabilityResult').html('Vul uw huisnummer in').fadeIn();
				return false;
				
			}
		
			$.post('/?action=checkAvailability', {product_group : $('#product_group').val(), zip: zip, number: number, number_add: number_add}, function (response) {
			
				if(response == "NOK") {
					
					location = '/niet_leverbaar';
					
				} else {
				
					$('input[name=proceed]').val('1');
					$('#transferStep1').submit();
					
				}
				
			});
		
		});
	
	}
	
	if($('#transferStep2').length > 0) {

	 	$("#transferStep2").validate({
			rules: {
				txtCompany: "required",
				txtStreet: "required",
				txtCity: "required",
				txtCompCompany: "required",
				txtCompStreet: "required",
				txtCompNumber: "required",
				txtCompZip: {
					required: true,
					zip: true
				},
				txtCompCity: "required",
				txtInitials: "required",
				txtName: "required",
				txtPhone: {
					required: true,
					phone: true
				},
				txtEmail: {
					email: true,
					required: true
				},
				txtTechInitials: "required",
				txtTechName: "required",
				txtTechPhone: {
					required: true,
					phone: true
				},
				txtTechEmail: {
					email: true,
					required: true
				},
				txtConnectStreet: "required",
				txtConnectCity: "required",
				txtBankAccount:  {
					bankaccount: true,
					required: true
				},
				txtBankName: "required"
			},
			messages: {
				txtCompany: " Bedrijfsnaam is verplicht",
				txtStreet: " Straatnaam is verplicht",
				txtCity: " Vestigingsplaats is verplicht",
				txtCompCompany: " Bedrijfsnaam is verplicht",
				txtCompStreet: " Straatnaam is verplicht",
				txtCompNumber: " Huisnummer is verplicht",
				txtCompZip: {
					required: " Postcode is verplicht",
					zip: " Onjuiste postcode"
				},
				txtCompCity: " Vestigingsplaats is verplicht",
				txtInitials: " Voorletters zijn verplicht",
				txtName: " Achternaam is verplicht",
				txtPhone: {
					required: " Telefoonnummer is verplicht",
					phone: " Onjuist telefoonnummer. Zonder streepje invoeren, s.v.p."
				},
				txtEmail: {
					required: " E-mailadres is verplicht",
					email: " Onjuist e-mailadres"
				},
				txtTechInitials: " Voorletters zijn verplicht",
				txtTechName: " Achternaam is verplicht",
				txtTechPhone: {
					required: " Telefoonnummer is verplicht",
					phone: " Onjuist telefoonnummer. Zonder streepje invoeren, s.v.p."
				},
				txtTechEmail: {
					required: " E-mailadres is verplicht",
					email: " Onjuist e-mailadres"
				},
				txtConnectStreet: " Straatnaam is verplicht",
				txtConnectCity: " Vestigingsplaats is verplicht",
				txtBankAccount: {
					required: " Rekeningnummer is verplicht",
					bankaccount: " Onjuist rekeningnummer"
				},
				txtBankName: " Naam rekeninghouder is verplicht"
			}
			
		});
				
	}

	$("#transferStep3").validate({
		rules: {
			txtGeneralConditions: {
				required: true
			},
			txtAuthorization:  {
				required: true,
				digits: true
			}
		},
		messages: {
			txtGeneralConditions: {
				required: " <font color=red>U dient akkoord te gaan met de voorwaarden</font><br />"
			},
			txtAuthorization: {
				required: " <font color=red>U dient Ziggo te machtigen tot het automatisch afschrijven van uw rekening</font><br />"
			}
		}
	});
	
	
	$('.transferStepBack').click(function() {
		
		x_transferStepBack(function (data) {
			
			document.location = data;
			
		});
				
	});
	
	$('.transferSteps').click(function() {
		
		x_transferGoToStep($(this).attr('step'), function (data) {
			
			document.location = data;
			
		});
				
	});
	
	$('#copyAdmToTech').click(function() {

		$('#txtGenderV').attr('checked') == true ? $('#txtTechGenderV').attr({'checked' : true}) : $('#txtTechGenderM').attr({'checked' : true});
		$('#txtTechInitials').val($('#txtInitials').val());
		$('#txtTechPrefix').val($('#txtPrefix').val());
		$('#txtTechName').val($('#txtName').val());
		$('#txtTechPhone').val($('#txtPhone').val());
		$('#txtTechCellphone').val($('#txtCellphone').val());
		$('#txtTechFax').val($('#txtFax').val());
		$('#txtTechEmail').val($('#txtEmail').val());
		
	});
	
	$('#copyCompanyToConn').click(function() {

		$('#txtConnectStreet').val($('#txtStreet').val());
		$('#txtConnectNumber').val($('#txtNumber').html());
		$('#txtConnectNumberAdd').val($('#txtNumberAdd').html());
		$('#txtConnectZip').val($('#txtZip').html());
		$('#txtConnectCity').val($('#txtCity').val());
		
	});
	

 	/* MARKTSELECT */
 	
 	$('.msCompanies').click(function() {
 		
		createLoader($('#wrapper'));
 		
 		// retrieve company's data
 		$.post('/?action=getCompany', {ms_id: $(this).attr('rel')}, function (data) {

 			// split callback-data
			data = data.split('||');
	
			// assign vars
	 		var company = data[0];
	 		var phone = data[1].replace('-','');
	 		var fax = data[2].replace('-','');
	 		var email = data[3];
	 		var coc = data[4];
	 		var employees = data[5];
	 		var street = data[6];
	 		var city = data[7];
	 		
	 		// populate textboxes
	 		$('#txtCoC').val(coc);
	 		$('#txtCompany').val(company);
	 		$('#txtPhone').val(phone);
	 		$('#txtFax').val(fax);
	 		$('#txtEmail').val(email);
	 		$('#txtContact_Phone').val(phone);
	 		$('#txtContact_Email').val(email);
	 		$('#txtEmployees').val(employees);
	 		$('#txtStreet').val(street);
	 		$('#txtCity').val(city);
	 		
	 		// remove loader
	 		$('#ajaxLoader').remove();
	 		
	 		// reset cursor
			$('body').css({'cursor' : ''})
			
 		
 		
 		});
 		return false;
 		
 		/*
 		x_getCompany($(this).attr('rel'), function(data) {
		
			// split callback-data
			data = data.split('||');
	
			// assign vars
	 		var company = data[0];
	 		var phone = data[1].replace('-','');
	 		var fax = data[2].replace('-','');
	 		var email = data[3];
	 		var coc = data[4];
	 		var employees = data[5];
	 		var street = data[6];
	 		var city = data[7];
	 		
	 		// populate textboxes
	 		$('#txtCoC').val(coc);
	 		$('#txtCompany').val(company);
	 		$('#txtPhone').val(phone);
	 		$('#txtFax').val(fax);
	 		$('#txtEmail').val(email);
	 		$('#txtContact_Phone').val(phone);
	 		$('#txtContact_Email').val(email);
	 		$('#txtEmployees').val(employees);
	 		$('#txtStreet').val(street);
	 		$('#txtCity').val(city);
	 		
	 		// remove loader
	 		$('#ajaxLoader').remove();
	 		
	 		// reset cursor
			$('body').css({'cursor' : ''})
			
		});
 		
 		return false;
 		*/
 		
 	});
	
	
});


function findCompany(parent) {
	
	var zip = $('#txtCompZip').val();
	var number = $('#txtCompNumber').val();
	
	if(zip.match(/([1-9]{1})([0-9]{3})([a-zA-Z]{2})/) && number != "") {
	
		createLoader($('#wrapper'));
	
		$.post('/?action=searchCompany', {zip: zip, number: number}, function (response) {
		
			$('.msCompanies2').parent().find('br').remove();
			$('.msCompanies2').remove();
			
			response = eval(response);
			
			if( response.length > 0 ) {
				
				for ( var i = 0; i < response.length; i++) {
					
					parent.after('<br /><a class="msCompanies2" rel="' + response[i].mskey + '" href="#" onclick="return fetchCompany($(this).attr(\'rel\'));">' + response[i].name + '</a>')			
			
				}
				
			}
			
			// remove loader
	 		$('#ajaxLoader').remove();
	 		
	 		// reset cursor
			$('body').css({'cursor' : ''})
			
		});
		
	} 

}

function createLoader (elm) {

 		// change cursor to wait
 		$('body').css({'cursor' : 'wait'})
 		
 		// create loader image
 		var newImg = document.createElement('IMG');
		
 		// add attributes to loader image
		newImg.id = 'ajaxLoader';
		newImg.src = '/img/shared/ajax-loader.gif';
		
		// add loader image to wrapper
		elm.append(newImg);
			
		// get position of scroll
		var fromTop = -20 + $(document).scrollTop();
		
		// set css values to loader image
		$('#ajaxLoader').css({	'position' : 'absolute',
		 						'left' : '50%',
		 						'top' : '50%',
		 						'width' : '20px',
		 						'height' : '20px',
		 						'margin-top' : fromTop,
		 						'margin-left' : '-20px',
		 						'display' : 'block'
		 					});

}

function fetchCompany (rel) {
 		
	createLoader($('#wrapper'));
	
	// retrieve company's data
	$.post('/?action=getCompany', {ms_id: rel}, function (data) {

		// split callback-data
		data = data.split('||');

		// assign vars
 		var company = data[0];
 		var coc = data[4];
 		var street = data[6];
 		var city = data[7];
 		
 		// populate textboxes
 		$('#txtCompCoC').val(coc);
 		$('#txtCompCompany').val(company);
 		$('#txtCompStreet').val(street);
 		$('#txtCompCity').val(city);
 		
 		// remove loader
 		$('#ajaxLoader').remove();
 		
 		// reset cursor
		$('body').css({'cursor' : ''})
		
	});

	return false;
	
}