var planPrice = 0;
var curPlan = 0;
var domainType = 0;

var dynValues = new Array();
dynValues['boxNone'] = 'Not selected yet';
dynValues['boxOwa'] = 'Exchange 2010 OWA only';
dynValues['boxFull'] = 'Exchange 2010 Full';
dynValues['domainNone'] = 'Not selected yet';
dynValues['domainOwn'] = 'Own domain will be used';
dynValues['domainNew'] = 'New domain registration';
dynValues['blackBerry'] = 'Black berry setup';
dynValues['setupFee'] = 'Maibox setup fee';
dynValues['priceOwa'] = 4.85;
dynValues['priceFull'] = 9.50;
dynValues['priceSetup'] = 2;
dynValues['priceDomain'] = 9.99;
dynValues['priceBB'] = 5.95;

function OwaPlanClicked(){
	planPrice = dynValues['priceOwa'];		
	curPlan = 1;
	UpdateTotal();
}

function FullPlanClicked(){
	planPrice = dynValues['priceFull'];
	curPlan = 2;
	UpdateTotal();
}

function QuantityBlur(){
	var q = $('#txtBoxQuantity').val();
	$('#txtCartQuantity').val(q);
	$('#txtCartQuantityMain').val(q);
	UpdateTotal();
}

function UpdateCartClicked(){
	var q = $('#txtCartQuantity').val();
	$('#txtBoxQuantity').val(q);
	$('#txtCartQuantityMain').val(q);
	UpdateTotal();
}

function UpdateOrderClicked(){
	var q = $('#txtCartQuantityMain').val();
	$('#txtCartQuantity').val(q);
	$('#txtBoxQuantity').val(q);
	UpdateTotal();
}

function UpdateBBClicked() {
    var q = $('#txtBoxBlackberry').val();
    $('#txtCartBlackberryQtyRight').val(q);
    $('#txtCartBlackberryQtyMain').val(q);
    UpdateTotal();
}

function UpdateBBCartClicked() {
    var q = $('#txtCartBlackberryQtyRight').val();
    $('#txtBoxBlackberry').val(q);
    $('#txtCartBlackberryQtyMain').val(q);
    UpdateTotal();
}

function UpdateBBOrderClicked() {
    var q = $('#txtCartBlackberryQtyMain').val();
    $('#txtBoxBlackberry').val(q);
    $('#txtCartBlackberryQtyRight').val(q);
    UpdateTotal();
}

function UpdateTotal(){
	
	$('#trCartMail').toggle(curPlan > 0);
	$('#trCartSetup').toggle(curPlan > 0);
	$('#trOrderMail').toggle(curPlan > 0);
	$('#trOrderSetup').toggle(curPlan > 0);
	$('#trCartDomain').toggle(domainType > 0);
	$('#trOrderDomain').toggle(domainType > 0);

	var q = parseInt($('#txtCartQuantity').val());
	if (isNaN(q)) q = 0;

	var q1 = parseInt($('#txtBoxBlackberry').val());
	if (isNaN(q1)) q1 = 0;
	$('#trCartBlackberry').toggle(q1 > 0);
	$('#trOrderBlackberry').toggle(q1 > 0);



	if (q1 > q) {
	    alert('Number of BlackBerry users can not be bigger than number of mailboxes.');
	    $('#txtBoxBlackberry').val(q);
	    UpdateBBClicked();
	    return;
	}

	var setupFee = q > 4 ? 0 : dynValues['priceSetup'];
	$('#txtCartSetupFeeQtyMain').val(q);	
	$('#txtCartSetupFeeQtyRightColumn').val(q);	
	$('#SetupFeeMain').val(setupFee > 0 ? '$' + setupFee.formatMoney(2,'.',',') : 'Free');
	$('#SetupFeeRightColumn').val(setupFee > 0 ? '$' + setupFee.formatMoney(2,'.',',') : 'Free');

	//change description in cart and order view
	var descr = dynValues['boxNone'];
	switch(curPlan)
	{
		case 1: descr = dynValues['boxOwa'];break;
		case 2: descr = dynValues['boxFull'];break;
		default: break;
	}
	$('#txtCartItemDescriptionRightColumn').val(descr);
	$('#txtCartItemDescriptionMain').val(descr);     

	//change price in cart and review order
	var price = '$' + planPrice.formatMoney(2,'.',',');
	$('#lineItemPriceRightColumn').val(price);
	$('#lineItemPrice').val(price);

	//change bb price in cart and review order
	var price_bb = '$' + dynValues['priceBB'].formatMoney(2, '.', ',');
	$('#txtCartBlackberryDescriptionRight').val(dynValues['blackBerry']);
	$('#txtCartBlackberryDescriptionMain').val(dynValues['blackBerry']);
	$('#txtCartBlackberryPriceMain').val(price_bb);
	$('#txtCartBlackberryPriceRight').val(price_bb);
	var bbPrice = dynValues['priceBB'] * q1;

	//check domain charges in cart
	var domainPrice = 0;
	var domainDescription = dynValues['domainNone'];
	switch(domainType)
	{
		case 1: domainDescription=dynValues['domainOwn']; break;
		case 2: domainDescription=dynValues['domainNew']; domainPrice = dynValues['priceDomain']; break;
		default: break;
	}	
	$('#txtCartDomainDescriptionMain').val(domainDescription);
	$('#txtCartItemDomainDescriptionRightColumn').val(domainDescription);

	$('#domainItemPrice').val('$' + domainPrice.formatMoney(2,'.',','));
	$('#lineItemPriceDomainRightColumn').val('$' + domainPrice.formatMoney(2,'.',','));
	
	//change total in cart and review order		
	var total = '$' + (q * (planPrice + setupFee) + domainPrice + bbPrice).formatMoney(2, '.', ',');
	$('#txtCartTotalRightColumn').val(total);
	$('#txtCartTotal').val(total);	

}

function OwnDomainClicked(){
	domainType = 1;	
	UpdateTotal();
}

function NewDomainClicked(){
	domainType = 2;
	UpdateTotal();
}

function CheckDomainClicked(){
	$('#domainAvailability').html('');	
	Page.IsDomainAvailable($('#domain').val(), CheckDomainCallback);
}
function CheckDomainCallback(res){
	$('#domainAvailability').html(res.value?'<span class="green">Available</span>':'<span class="red">Unavailable</span>');	
}

function DetailsCheckboxClicked(){
	var bd = new Array('bfn', 'bln', 'bcompany', 'baddress1', 'baddress2', 'bcity', 'bzip', 'bcountry', 'bemail', 'bstate', 'bphone');
	var cd = new Array('cfn', 'cln', 'company', 'caddress1', 'caddress2', 'ccity', 'czip', 'ccountry', 'cemail', 'cstate', 'cphone');
	for(var i=0; i< bd.length; i++)          
		$('#' + bd[i]).val(this.checked?($('#' + cd[i]).val()):'');
	//$('#bcountry').data('dropkick').$dk.find('.dk_label').html($('#ccountry :selected').html());
}

Number.prototype.formatMoney = function(c, d, t){
	var n = this, c = isNaN(c = Math.abs(c)) ? 2 : c, d = d == undefined ? "," : d, t = t == undefined ? "." : t, s = n < 0 ? "-" : "", i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0;
	return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
};


$(document).ready(function () {    
	$('#rbMailType_1').click(OwaPlanClicked);
	$('#rbMailType_2').click(FullPlanClicked);
	$('#txtBoxQuantity').blur(QuantityBlur);
	$('#btnCartUpdate_right').click(UpdateCartClicked);
	$('#btnCartUpdate_main').click(UpdateOrderClicked);
	$('#rbDomain_1').click(OwnDomainClicked);
	$('#rbDomain_2').click(NewDomainClicked);
	$('#btnDomainCheck').click(CheckDomainClicked);
	$('#cbSameInfo').click(DetailsCheckboxClicked);
	$('#txtCartSetupFeeDescriptionMain').val(dynValues['setupFee']);
	$('#txtCartSetupFeeDescriptionRightColumn').val(dynValues['setupFee']);
	$('#btnUpdateBlackberry').click(UpdateBBClicked);
	$('#btnCartBlackberryUpdateRight').click(UpdateBBCartClicked);
	$('#btnCartBlackberryUpdateMain').click(UpdateBBOrderClicked);
	UpdateTotal();
});
