function docolor(hLink) {
    hLink.style.color = "FF9900";
}


function undocolor(hLink) {
    hLink.style.color = "FFFFFF";
}


function ShowHide(p) {
	oRow = document.getElementById(p);
	
	if (oRow.style.display == "none") {
		oRow.style.display = "block";
	}
	else {
		oRow.style.display = "none";
	}
}


function ShowHideChBox(p) {
	oRow = document.getElementById('cc_' + p);
	
	if (oRow.style.display !== "none" && document.getElementById(p).checked) {
		oRow.style.display = "block";
	}
	else if (oRow.style.display == "block" && !document.getElementById(p).checked){
		oRow.style.display = "none";
	}
	else if (oRow.style.display == "none" && document.getElementById(p).checked){
		oRow.style.display = "block";
	}
}


function SetUpDown(id){
	divid = "arrow_"+id;
	divid2 = id;
	
	if (document.getElementById) {
		obj = document.getElementById(divid)
		obj2 = document.getElementById(divid2)
	}
	else if (document.all) {
		obj = document.all[divid]
		obj2 = document.all[divid2]
	}
	
	if(obj2.style.display == 'none') {
		obj.src="images/room_down.gif";
	}
	else {
		obj.src="images/room_up.gif";
	}
}


function ChRoomStat(id) {
	if(document.getElementById(id).checked) {
		document.getElementById('rr_' +id).className = 'cc_s';
	}
	else {
		document.getElementById('rr_' + id).className = 'cc_n';
	}
}


function ChProdStat(id) {
	if(document.getElementById('main_' + id).checked) {
		document.getElementById('pp_' + id).className = 'cc_s';
	}
	else {
		document.getElementById('pp_' + id).className = 'cc_n';
	}
}


function ChAddProdStat(id) {
	if(document.getElementById(id).checked) {
		document.getElementById('p_' + id).className = 'cc_s';
	}
	else {
		document.getElementById('p_' + id).className = 'cc_n';
	}
}


function SetMainUpdate(id, type, name) {
	if (name !== '')
		type = type + '_' + name;
	
	document.getElementById('main_up_yn_' + id).value = type;
}

function SetExUpdate(id, type, name) {
	if (name !== '')
		type = type + '_' + name;

	document.getElementById('ex_up_yn_' + id).value = type;
}


function calcTotal(position) {
	var dPoints = Math.pow(10, 2);
	var total = parseFloat(document.getElementById('ap_total_price').value);
	var room_price = parseFloat(document.getElementById('rr_' + position).value);
	
	if(document.getElementById(position).checked) {
		total = Math.round((total + room_price)*dPoints)/dPoints;
	}
	else {
		total = Math.round((total - room_price)*dPoints)/dPoints;
	}

	document.getElementById('ap_total_price').value = total.toFixed(2);
	calcDiscount();
}


function calcDiscount() {
	var dPoints = Math.pow(10, 2);
	var total = parseFloat(document.getElementById('ap_total_price').value);
	var discount = parseFloat(document.getElementById('ap_discount').value);
	
	total = Math.round((total - (total*discount/100))*dPoints)/dPoints;
	document.getElementById('ap_total_discount_price').value = total.toFixed(2);
}


function calcRoom(room_id, product_id) {
	var dPoints = Math.pow(10, 2);
	var product_price = parseFloat(document.getElementById('main_' + room_id + '_' + product_id).value);
	var room_price = parseFloat(document.getElementById('rr_' + room_id).value);
	var total = parseFloat(document.getElementById('ap_total_price').value);
	
	if(document.getElementById('main_' + room_id + '_' + product_id).checked) {
		room_price = Math.round((room_price + product_price)*dPoints)/dPoints;
		total = Math.round((total + product_price)*dPoints)/dPoints;
		
		//if (!document.getElementById(room_id).checked) {
		//	document.getElementById(room_id).checked = true;
		//	document.getElementById('rr_' + room_id).className = 'cc_s';
		//}
	}
	else {
		room_price = Math.round((room_price - product_price)*dPoints)/dPoints;
		
		if (document.getElementById('ap_total_price').value !== '0.00') {
			total = Math.round((total - product_price)*dPoints)/dPoints;
		}
	}
	
	if (document.getElementById(room_id).checked) {
		document.getElementById('rr_' + room_id).value = room_price.toFixed(2);
		document.getElementById('ap_total_price').value = total.toFixed(2);
		calcDiscount();
	}
	else {
		document.getElementById('rr_' + room_id).value = room_price.toFixed(2);
	}
	
	if (document.getElementById('rr_' + room_id).value == '0.00') {
		document.getElementById(room_id).checked = false;
		document.getElementById('rr_' + room_id).className = 'cc_n';
	}
}


function calcExProd(room_id, product_id) {
	var dPoints = Math.pow(10, 2);
	var product_price = parseFloat(document.getElementById('p_ex_' + room_id + '_' + product_id).value);
	var room_price = parseFloat(document.getElementById('rr_' + room_id).value);
	var total = parseFloat(document.getElementById('ap_total_price').value);
	
	if(document.getElementById('ex_' + room_id + '_' + product_id).checked) {
		room_price = Math.round((room_price + product_price)*dPoints)/dPoints;
		total = Math.round((total + product_price)*dPoints)/dPoints;
		
		//if (!document.getElementById(room_id).checked) {
		//	document.getElementById(room_id).checked = true;
		//	document.getElementById('rr_' + room_id).className = 'cc_s';
		//}
	}
	else {
		room_price = Math.round((room_price - product_price)*dPoints)/dPoints;
		
		if (document.getElementById('ap_total_price').value !== '0.00') {
			total = Math.round((total - product_price)*dPoints)/dPoints;
		}
	}

	if (document.getElementById(room_id).checked) {
		document.getElementById('rr_' + room_id).value = room_price.toFixed(2);
		document.getElementById('ap_total_price').value = total.toFixed(2);
		calcDiscount();
	}
	else {
		document.getElementById('rr_' + room_id).value = room_price.toFixed(2);
	}
		
	if (document.getElementById('rr_' + room_id).value == '0.00') {
		document.getElementById(room_id).checked = false;
		document.getElementById('rr_' + room_id).className = 'cc_n';
	}
}


function calcMainQuant(room_id, product_id) {
	var dPoints = Math.pow(10, 2);
	var product_price = parseFloat(document.getElementById('pp_' + room_id + '_' + product_id).value);
	var room_price = parseFloat(document.getElementById('rr_' + room_id).value);
	var total = parseFloat(document.getElementById('ap_total_price').value);
	
	box = document.getElementById('quant_' + room_id + '_' + product_id);
	multiplier = box.options[box.selectedIndex].value;

	quant_price = product_price * multiplier;
	old_quant_price = parseFloat(document.getElementById('main_' + room_id + '_' + product_id).value);
		
	if (document.getElementById('main_' + room_id + '_' + product_id).checked) {
		new_room_price = Math.round((room_price - old_quant_price + quant_price)*dPoints)/dPoints;
		total = Math.round((total - room_price + new_room_price)*dPoints)/dPoints;
		
		if (document.getElementById(room_id).checked) {
			document.getElementById('rr_' + room_id).value = new_room_price.toFixed(2);
			document.getElementById('main_' + room_id + '_' + product_id).value = quant_price.toFixed(2);
			document.getElementById('ap_total_price').value = total.toFixed(2);
			calcDiscount();
		}
		else {
			document.getElementById('rr_' + room_id).value = new_room_price.toFixed(2);
			document.getElementById('main_' + room_id + '_' + product_id).value = quant_price.toFixed(2);
		}
	}
	else {
		document.getElementById('main_' + room_id + '_' + product_id).value = quant_price.toFixed(2);
	}
}


function calcExQuant(room_id, product_id) {
	var dPoints = Math.pow(10, 2);
	var product_price = parseFloat(document.getElementById('p_ex_' + room_id + '_' + product_id).value);
	var room_price = parseFloat(document.getElementById('rr_' + room_id).value);
	var total = parseFloat(document.getElementById('ap_total_price').value);
	
	box = document.getElementById('quant_ex_' + room_id + '_' + product_id);
	multiplier = box.options[box.selectedIndex].value;
	
	quant_price = product_price * multiplier;
	old_quant_price = parseFloat(document.getElementById('ex_' + room_id + '_' + product_id).value);
	
	if (document.getElementById('ex_' + room_id + '_' + product_id).checked) {
		new_room_price = Math.round((room_price - old_quant_price + quant_price)*dPoints)/dPoints;
		total = Math.round((total - room_price + new_room_price)*dPoints)/dPoints;
		
		if (document.getElementById(room_id).checked) {
			document.getElementById('rr_' + room_id).value = new_room_price.toFixed(2);
			document.getElementById('ex_' + room_id + '_' + product_id).value = quant_price.toFixed(2);
			document.getElementById('ap_total_price').value = total.toFixed(2);
			calcDiscount();
		}
		else {
			document.getElementById('rr_' + room_id).value = new_room_price.toFixed(2);
			document.getElementById('ex_' + room_id + '_' + product_id).value = quant_price.toFixed(2);
		}
	}
	else {
		document.getElementById('ex_' + room_id + '_' + product_id).value = quant_price.toFixed(2);
	}
}


function calcMainUpdate(room_id, product_id) {
	var dPoints = Math.pow(10, 2);
	var total = parseFloat(document.getElementById('ap_total_price').value);
	var room_price = parseFloat(document.getElementById('rr_' + room_id).value);
	var main_product_price = parseFloat(document.getElementById('main_' + room_id + '_' + product_id).value);	
	var x;
	
	radiogroup = document.orderForm.elements['main_up_' + room_id + '_' + product_id];
	
	if (x = radiogroup.length) {
		while (x--)	 {
			if (radiogroup[x].checked) {
				upgrade_price = parseFloat(radiogroup[x].value);
			}
		}
	}
	
	multiplier = document.getElementById('quant_' + room_id + '_' + product_id).selectedIndex + 1;
	quant_upgrade_price = multiplier*upgrade_price;
	
	if (document.getElementById('main_' + room_id + '_' + product_id).checked) {
		new_room_price = Math.round((room_price - main_product_price + quant_upgrade_price)*dPoints)/dPoints;
		new_total = Math.round((total - room_price + new_room_price)*dPoints)/dPoints;
		
		if (document.getElementById(room_id).checked) {
			document.getElementById('main_' + room_id + '_' + product_id).value = quant_upgrade_price.toFixed(2);
			document.getElementById('pp_' + room_id + '_' + product_id).value = upgrade_price.toFixed(2);
			document.getElementById('rr_' + room_id).value = new_room_price.toFixed(2);
			document.getElementById('ap_total_price').value = new_total.toFixed(2);
			calcDiscount();
		}
		else {
			document.getElementById('main_' + room_id + '_' + product_id).value = quant_upgrade_price.toFixed(2);
			document.getElementById('pp_' + room_id + '_' + product_id).value = upgrade_price.toFixed(2);
			document.getElementById('rr_' + room_id).value = new_room_price.toFixed(2);
		}
	}
	else {
		document.getElementById('pp_' + room_id + '_' + product_id).value = upgrade_price.toFixed(2);
		document.getElementById('main_' + room_id + '_' + product_id).value = quant_upgrade_price.toFixed(2);
	}
}


function calcExUpdate(room_id, product_id) {
	var dPoints = Math.pow(10, 2);
	var total = parseFloat(document.getElementById('ap_total_price').value);
	var room_price = parseFloat(document.getElementById('rr_' + room_id).value);
	var main_product_price = parseFloat(document.getElementById('ex_' + room_id + '_' + product_id).value);	
	var x;
	
	radiogroup = document.orderForm.elements['ex_up_' + room_id + '_' + product_id];
	
	if (x = radiogroup.length) {
		while (x--)	 {
			if (radiogroup[x].checked) {
				upgrade_price = parseFloat(radiogroup[x].value);
			}
		}
	}
	
	multiplier = document.getElementById('quant_ex_' + room_id + '_' + product_id).selectedIndex + 1;
	quant_upgrade_price = multiplier*upgrade_price;
	
	if (document.getElementById('ex_' + room_id + '_' + product_id).checked) {
		new_room_price = Math.round((room_price - main_product_price + quant_upgrade_price)*dPoints)/dPoints;
		new_total = Math.round((total - room_price + new_room_price)*dPoints)/dPoints;
		
		if (document.getElementById(room_id).checked) {
			document.getElementById('ex_' + room_id + '_' + product_id).value = quant_upgrade_price.toFixed(2);
			document.getElementById('p_ex_' + room_id + '_' + product_id).value = upgrade_price.toFixed(2);
			document.getElementById('rr_' + room_id).value = new_room_price.toFixed(2);
			document.getElementById('ap_total_price').value = new_total.toFixed(2);
			calcDiscount();
		}
		else {
			document.getElementById('ex_' + room_id + '_' + product_id).value = quant_upgrade_price.toFixed(2);
			document.getElementById('p_ex_' + room_id + '_' + product_id).value = upgrade_price.toFixed(2);
			document.getElementById('rr_' + room_id).value = new_room_price.toFixed(2);
		}
	}
	else {
		document.getElementById('p_ex_' + room_id + '_' + product_id).value = upgrade_price.toFixed(2);
		document.getElementById('ex_' + room_id + '_' + product_id).value = quant_upgrade_price.toFixed(2);
	}
}


function checkSubmit() {
	var f = document.orderForm;
	
	if( f.firstname.value == '' ) {
		alert('Please, enter your first name!');
		f.firstname.focus();
		return false;
    }
	else if( f.lastname.value == '' ) {
		alert('Please, enter your last name!');
		f.lastname.focus();
		return false;
    }
	else if(!ValidateAsEmail(f.email.value)) {
		alert('Please, enter your E-mail!');
		f.email.focus();
		return false;
	}

	f.target="_self";
	f.action="includes/order_package.php";
	return true;
}


function ValidateAsEmail (emailStr) {
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);
	
	if (matchArray==null) {
		return false;
	}
	
	var user=matchArray[1];
	var domain=matchArray[2];

	if (user.match(userPat)==null) { // user is not valid
		return false;
	}

	/* if the e-mail address is at an IP address (as opposed to a symbolic host name) make sure the IP address is valid. */
	var IPArray=domain.match(ipDomainPat);
	
	if (IPArray!=null) { // this is an IP address
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				return false;
			}
		}
			return true;
	}

	// Domain is symbolic name
	var domainArray=domain.match(domainPat);
	
	if (domainArray==null) {
		return false;
	}

	var atomPat=new RegExp(atom,"g");
	var domArr=domain.match(atomPat);
	var len=domArr.length;
	
	if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>5) { // the address must end in a two letter or three letter word.
	   return false;
	}

	if (len<2) { // Make sure there's a host name preceding the domain.
		return false;
	}

	return true;
}


function GetPreview() {
	var f = document.orderForm;
	f.target="_blank";
	f.action="includes/order_preview.php";
	f.submit();
}
