function get_discount_price(price){
	if(coupondiscount >= 1){
		price = price - (price * (coupondiscount / 100));
	}
	if(pricediscount >= 1){
		price = price - (price * (pricediscount / 100));
	}
	return Math.round(price);
}
function onusecoupon_success(rate){
	coupondiscount = rate;
	self.location.reload();
	//jslib.$('p_discountrate').innerHTML = (pricediscount + coupondiscount) + '%'
}


function init_certification_examgroup(){
	var groups = jslib.$$('group');
	var groupNum = parseInt(jslib.$('groupNum').value);
	var isset = false;

	for(var i=0; i<groups.length; i++){
		var exams = jslib.$$('coreExam' + (i + 1));
		var count = 0;
		var num = parseInt(groups[i].value);
		var required = groups[i].getAttribute('required') == 'True';

		for(var j=0; j<exams.length; j++){
			if(required || !isset){
				if(count ++ < num || num == 0){
					exams[j].checked = true;
				}
			}
		}
		if(!required)isset = true;
	}
	compute_certification_exams();
}

function comma_number(v){
	var t = v.toString().split('.');
	var text = [];
	var d = 0;
	for(var i=t[0].length-1; i>=0; i--){
		if(d == 3){
			text.push(',');
			d = 0;
		}
		d ++;
		text.push(t[0].charAt(i));
	}
	v = text.reverse().join('');
	if(t.length > 1)v += '.' + t[1];
	return v;
}

function compute_certification_exams(){
	var count = 0, totalprice = 0, mindeposit = 0;
	var groups = jslib.$$('group');
	for(var i=0; i<groups.length; i++){
		var exams = jslib.$$('coreExam' + (i + 1));
		for(var j=0; j<exams.length; j++){
			if(exams[j].checked){
				count ++;
				totalprice += parseInt(exams[j].getAttribute('price'));
				var d = parseInt(exams[j].getAttribute('deposit'));
				if(mindeposit == 0 || mindeposit > d)mindeposit = d;
			}
		}
	}

	var p_examcount = jslib.$('p_examcount');
	if(p_examcount)p_examcount.innerHTML = count;

	var actualprice = jslib.$('cert_actualprice');
	if(actualprice && count == 1 && actualprice.value != '' && !isNaN(actualprice.value) && parseInt(actualprice.value) > 0){
		totalprice = parseInt(actualprice.value);
	}

	var p_totalprice = jslib.$('p_totalprice');
	if(p_totalprice)p_totalprice.innerHTML = comma_number(totalprice) + '.00';
	var p_sellprice = jslib.$('p_sellprice');
	if(p_sellprice)p_sellprice.innerHTML = comma_number(get_discount_price(totalprice)) + '.00';
	var p_mindeposit = jslib.$('p_mindeposit');
	if(p_mindeposit)p_mindeposit.innerHTML = comma_number(mindeposit) + '.00';
}

function check_certification_exams(){
	var groups = jslib.$$('group');
	var groupNum = parseInt(jslib.$('groupNum').value);
	var chooseNum = 0;
	for(var i=0; i<groups.length; i++){
		var exams = jslib.$$('coreExam' + (i + 1));
		var count = 0;
		var num = parseInt(groups[i].value);
		var required = groups[i].getAttribute('required') == 'True';
		var n = groups[i].getAttribute('n');

		for(var j=0; j<exams.length; j++){
			if(exams[j].checked)count ++;
		}
		if(count != 0) chooseNum ++;
		if((required || count >0) && (count == 0 || (num != 0 && num != count))){
			var msg = '';
			if(num < count){
				msg = 'Only {0} {3} required for Exam List {1}. Are you sure to include {2} more exams in Exam List {1}?'.format(num, n, (count - num), (num < 2 ? 'exam is' : 'exams are'));
			}else{
				msg = '{0} {2} required for Exam List {1}.'.format(num, n, (num < 2 ? 'exam is' : 'exams are'));
				if(count != 0){
					msg += ' Are you sure that you need only {0} of them'.format(count);
				}else{
					msg += ' Are you sure to exclude any exam in Exam List {0}?'.format(n);
				}
			}
			if(!confirm(msg)){
				return false;
			}else{
				if(required && count == 0)chooseNum ++;
			}
		}
	}
	//if(groupNum > chooseNum){
	//	messagebox('the exams are incompleteness!');
	//	return false;
	//}
	return true;
}
function buy_certification(){
	if(!check_certification_exams())return false;

	var data = [];
	var boxes = jslib.$tag('input');
	for(var i=0; i<boxes.length; i++){
		var key = '';
		var box = boxes[i];
		switch(box.type){
			case 'hidden':
			case 'text':
				if(box.name){
					key = encodeURIComponent(box.name) + '=' + encodeURIComponent(box.value);
				}
				break;
			case 'radio':
			case 'checkbox':
				if(box.checked && box.name){
					key = encodeURIComponent(box.name) + '=' + encodeURIComponent(box.value);
				}
				break;
		}
		if(key != ''){
			data.push(key);
		}
	}
	loading();
	jslib.ajax.post(site_root_path + 'service/shopping.ashx?do=buycert', data.join('&'), function(request){
		var result = request.responseText;
		jslib.messagebox.hidden();
		switch(result){
			case 'error_exam_cert':
				messagebox('Certification program could not be added together with individual exam(s).<br /><br />To order a certification program, please complete the order of current individual exam(s) OR remove them from your shopping cart.',function(){
					if(typeof(buycertification_finish) == 'function'){
						buycertification_finish(result);
					}
				},null,400,180);
				break;
			case 'error_cert_cert':
				messagebox('Only ONE certification program is allowed for each order.<br /><br />To order another certification program, please complete the order of current certification program OR remove it from your shopping cart.',function(){
					if(typeof(buycertification_finish) == 'function'){
						buycertification_finish(result);
					}
				},null,400,150);
				break;
			default:
				if(typeof(buycertification_finish) == 'function'){
					buycertification_finish(result);
				}
				break;
		}
	});
}
init_certification_examgroup();