// Some functions have already been moved into dc_cms.js, the new (shared) location

function create_account(form) {
	var data = {
		name : $(form).find('input[name=name]').val(),
		email : $(form).find('input[name=email]').val(),
		company : $(form).find('input[name=company]').val()
	};
	
    clearAlert();
    
	$.ajax( {
		url : API_BASEURL + "/account/create",
		dataType : 'jsonp',
		data : data,
		success : function(json) { 
			if (json.status == 'ok') {
            	alertSuccess("Aanmelding succesvol. De aanmelding wordt per e-mail voortgezet.", '#create_message');
			} else {
            	alertError(json.error.message, '#create_message');
			}
	}});
}

function create_referrer_account(referrer, form) {
    var data = {
		referrer : referrer,
		technical : referrer,
		name: $(form).find('input[name=name]').val(),
		email: $(form).find('input[name=email]').val(),
		company: $(form).find('input[name=company]').val()      
	};

    clearAlert();
	
	$.ajax( {
		url : API_BASEURL + "/account/create",
		dataType : 'jsonp',
		data : data,
		success : function(json) {
			if (json.status == 'ok') {
	            inviteOk();
			} else {
				alertError(json.error.message);
			}
		}
	});
}

function login(form) { 
    var data = {
        email: $(form).find('input[name=email]').val(),
        password: $(form).find('input[name=password]').val()
    };

    clearAlert();

    $.ajax({
        url: CMS_BASEURL + "/login",
        dataType: 'jsonp',
        data: data,
        success: function(json){
            if (json.status == 'ok') {
                loginOk();
            }
            else {
            	alertError(json.error.message, '#login_message');
            }
        }
    });
}

function recover(form){
    var data = {
        email: $(form).find('input[name=email]').val()
    };

    clearAlert();

    $.ajax({
        url: API_BASEURL + "/account/recover",
        dataType: 'jsonp',
        data: data,
        success: function(json){
            if (json.status == 'ok') {
            	alertSuccess(json.results.message, '#recover_message') 
                recoverOk();
            }
            else {
            	alertError(json.error.message, '#recover_message');
            }
        }
    });
}

function show_account_details(){
	loadRight(CMS_BASEURL + "/dashboard/account/settings");
	return false;
}

function show_subscription_settings(subscription){
	loadRight(CMS_BASEURL + "/dashboard/subscription/settings?subscription=" + subscription);
	return false;
}

function show_invite(){
	loadRight(CMS_BASEURL + "/dashboard/invite");
}
 
function dashboard_subscriptions(){
	load(CMS_BASEURL + "/dashboard/subscriptions");
	return false;
}

function dashboard_subscription_details(subscription){
	load(CMS_BASEURL + "/dashboard/subscription_details?subscription=" + subscription);
	return false;
} 

function dashboard_payment_new(){
	// Start the 5 step payment process 
	load(CMS_BASEURL + "/dashboard/payment/subscription_type?new=True");
	return false;
}

function dashboard_payment(subscription){
	// Start the 5 step payment process 
	load(CMS_BASEURL + "/dashboard/payment/subscription_type?subscription=" + subscription);	
	return false;
} 

function subscription_edit(form){
	subscription = $(form).find('input[name=subscription]').val();
	
    var data = {
        subscription: subscription,
        jsdomains: $(form).find('input[name=jsdomains]').val()
    };

    clearAlert();
    
    $.ajax({
        url: API_BASEURL + "/subscription/edit",
        dataType: 'jsonp',
        data: data,
        success: function(json){
            if (json.status == 'ok') {
				dashboard_subscription_details(subscription);
            }
            else {
            	alertError(json.error.message);
            }
        }
    });
}
     
function create_invoice(account, subscription, subscription_type, invoice){
	// Create or update invoice
    var data = {
        account: account,
        subscription: subscription,
        type: subscription_type,
        invoice: invoice
    };
    
    clearAlert();
    
    $.ajax({
        url: API_BASEURL + "/invoice/create",
        dataType: 'jsonp',
        data: data,
        success: function(json){
            if (json.status == 'ok') {
            	invoiceCreatedOk();
            }
            else {
            	alertError(json.error.message);
            }
        }
    });
}
 
function delete_invoice(invoice, subscription) {
    var data = {
		invoice : invoice 
	};

    clearAlert();
	
	$.ajax( {
		url : API_BASEURL + "/invoice/delete",
		dataType : 'jsonp',
		data : data,
		success : function(json) {
			if (json.status == 'ok') {
				// Update details
				dashboard_subscription_details(subscription); 
			} else {
				alertError(json.error.message);
			}
		}
	});
}

function account_edit(form, callback){
    var data = {
        account: $(form).find('input[name=account]').val(),
        email: $(form).find('input[name=email]').val(),
        name: $(form).find('input[name=name]').val(),
        company: $(form).find('input[name=company]').val(),
        street: $(form).find('input[name=street]').val(),
        streetnumber: $(form).find('input[name=streetnumber]').val(),        
        postcode: $(form).find('input[name=postcode]').val(),
        city: $(form).find('input[name=city]').val(),
        country: $(form).find('select[name=country]').val(),
        website: $(form).find('input[name=website]').val(),
        old_password: $(form).find('input[name=old_password]').val(),
        new_password: $(form).find('input[name=new_password]').val(),
        again_password: $(form).find('input[name=again_password]').val(),
        incasso_bank: $(form).find('input[name=incasso_bank]').val(),
        incasso_name: $(form).find('input[name=incasso_name]').val(),
        vat_number: $(form).find('input[name=vat_number]').val()
    };

    clearAlert();
	
    $.ajax({
        url: API_BASEURL + "/account/edit",
        dataType: 'jsonp',
        data: data,
        success: function(json){
            if (json.status == 'ok') {
            	callback();
            }
            else {
            	alertError(json.error.message);
            }
        }
    });
}

// Used by the email token verfieer during registration and creation of trial account, _and_
// when creating extra accounts.
function create_subscription(account, account_type, callback) {
    var data = {
		account : account,
		type: account_type
	};

    clearAlert();
	
	$.ajax( {
		url : API_BASEURL + "/subscription/create",
		dataType : 'jsonp',
		data : data,
		success : function(json) {
			if (json.status == 'ok') {
				// Update details
				callback(json.results.subscription, account_type);
			} else { 
				alertError(json.error.message);
			}
		}
	});
}

function delete_subscription(subscription) {
    var data = {
		subscription : subscription 
	};

    clearAlert();
	
	$.ajax( {
		url : API_BASEURL + "/subscription/delete",
		dataType : 'jsonp',
		data : data,
		success : function(json) {
			if (json.status == 'ok') {
				// Update details
				dashboard_subscriptions(); 
			} else {
				alertError(json.error.message);
			}
		}
	});
}


function pay_mollie_invoice(invoice, bank_id, cms_return_url) {
    var data = {
		invoice : invoice,
		bank_id: bank_id,
		return_url: cms_return_url
	};

    clearAlert();
	
	$.ajax( {
		url : API_BASEURL + "/mollie/bank",
		dataType : 'jsonp',
		data : data,
		success : function(json) {
			if (json.status == 'ok') {
				// Transfer the user to the bank
				window.location = json.results.url;
			} else {
				alertError(json.error.message);
			}
		}
	});
}


function pay_paypal_invoice(invoice, return_url, cms_return_url, cancel_url) {
    var data = {
		invoice : invoice,
		return_url: return_url,
		cms_return_url: cms_return_url,
		cancel_url: cancel_url
	};

    clearAlert();
	
	$.ajax( {
		url : API_BASEURL + "/paypal/checkout",
		dataType : 'jsonp',
		data : data,
		success : function(json) {
			if (json.status == 'ok') {
				// Transfer the user to the bank
				window.location = json.results.url;
			} else {
				alertError(json.error.message);
			}
		}
	});
}

/* UNUSED in NEW CMS */

function feedback_subscribe(auth_key, form) {
    var data = {
    		auth_key : auth_key,
    		website: $(form).find('input[name=website]').val(),
    		terms: $(form).find('input[name=terms]').val(),
    		agree: $(form).find('input[name=agree]').attr('checked')
    	};

	$.ajax( {
		url : API_BASEURL + "/feedback/subscribe",
		dataType : 'jsonp',
		data : data,
		success : function(json) {
			if (json.status == 'ok') {
				alert(json.results);
	            feedback_subscribe_ok();
			} else {
				alertError(json.error.message);
			}
		}
	});
}

