function quotebuilder_finalise_print(nstyle) {
	//get contents
	var printstart = "<!--quotebuilder_printstart-->";
	var printend = "<!--quotebuilder_printend-->";
	
	var posstart = document.body.innerHTML.indexOf(printstart)+printstart.length;
	var posend = document.body.innerHTML.indexOf(printend);
	
	var contents = "";
	if (nstyle != undefined) {
		contents = contents + nstyle;
	}
	contents = contents + document.body.innerHTML.substr(posstart,posend-posstart);
	contents = contents + '<script type="text/javascript">document.print();</script>';
	
	//var windowobject = window.open("about:blank","PrintPreview");
	//windowobject.document.body.innerHTML = contents;
	
	
	var windowobject = onionpopup("Printpreview","about:blank",500,350,true,true,contents);
	return false;
	
	//
	//windowobject.print();
}

function quotebuilder_finalise_getaccountdeliverydetails(nformid) {
	//get account details
	//get delivery inputs
	var accountdeliverycompany = oniongetelement(nformid+"_input_accountdeliverycompany");
	var accountdeliveryaddress1 = oniongetelement(nformid+"_input_accountdeliveryaddress1");
	var accountdeliveryaddress2 = oniongetelement(nformid+"_input_accountdeliveryaddress2");
	var accountdeliverycity = oniongetelement(nformid+"_input_accountdeliverycity");
	var accountdeliverycounty = oniongetelement(nformid+"_input_accountdeliverycounty");
	var accountdeliverypostcode = oniongetelement(nformid+"_input_accountdeliverypostcode");
	var accountdeliverycountry = oniongetelement(nformid+"_input_accountdeliverycountry");

	//get delivery inputs
	var deliverycompany = oniongetelement(nformid+"_input_deliverycompany");
	var deliveryaddress1 = oniongetelement(nformid+"_input_deliveryaddress1");
	var deliveryaddress2 = oniongetelement(nformid+"_input_deliveryaddress2");
	var deliverycity = oniongetelement(nformid+"_input_deliverycity");
	var deliverycounty = oniongetelement(nformid+"_input_deliverycounty");
	var deliverypostcode = oniongetelement(nformid+"_input_deliverypostcode");
	var deliverycountry = oniongetelement(nformid+"_input_deliverycountry");
	
	deliverycompany.value = accountdeliverycompany.value;
	deliveryaddress1.value = accountdeliveryaddress1.value;
	deliveryaddress2.value = accountdeliveryaddress2.value;
	deliverycity.value = accountdeliverycity.value;
	deliverycounty.value = accountdeliverycounty.value;
	deliverypostcode.value = accountdeliverypostcode.value;
	deliverycountry.value = accountdeliverycountry.value;
}

function quotebuilder_finalise_getaccountinvoicedetails(nformid) {
	//get account details
	//get invoice inputs
	var accountinvoicecompany = oniongetelement(nformid+"_input_accountinvoicecompany");
	var accountinvoiceaddress1 = oniongetelement(nformid+"_input_accountinvoiceaddress1");
	var accountinvoiceaddress2 = oniongetelement(nformid+"_input_accountinvoiceaddress2");
	var accountinvoicecity = oniongetelement(nformid+"_input_accountinvoicecity");
	var accountinvoicecounty = oniongetelement(nformid+"_input_accountinvoicecounty");
	var accountinvoicepostcode = oniongetelement(nformid+"_input_accountinvoicepostcode");
	var accountinvoicecountry = oniongetelement(nformid+"_input_accountinvoicecountry");

	//get invoice inputs
	var invoicecompany = oniongetelement(nformid+"_input_invoicecompany");
	var invoiceaddress1 = oniongetelement(nformid+"_input_invoiceaddress1");
	var invoiceaddress2 = oniongetelement(nformid+"_input_invoiceaddress2");
	var invoicecity = oniongetelement(nformid+"_input_invoicecity");
	var invoicecounty = oniongetelement(nformid+"_input_invoicecounty");
	var invoicepostcode = oniongetelement(nformid+"_input_invoicepostcode");
	var invoicecountry = oniongetelement(nformid+"_input_invoicecountry");
	
	invoicecompany.value = accountinvoicecompany.value;
	invoiceaddress1.value = accountinvoiceaddress1.value;
	invoiceaddress2.value = accountinvoiceaddress2.value;
	invoicecity.value = accountinvoicecity.value;
	invoicecounty.value = accountinvoicecounty.value;
	invoicepostcode.value = accountinvoicepostcode.value;
	invoicecountry.value = accountinvoicecountry.value;
}


function quotebuilder_finalise_duplicatedeliverydetails(nformid) {
	//get delivery inputs
	var deliverycompany = oniongetelement(nformid+"_input_deliverycompany");
	var deliveryaddress1 = oniongetelement(nformid+"_input_deliveryaddress1");
	var deliveryaddress2 = oniongetelement(nformid+"_input_deliveryaddress2");
	var deliverycity = oniongetelement(nformid+"_input_deliverycity");
	var deliverycounty = oniongetelement(nformid+"_input_deliverycounty");
	var deliverypostcode = oniongetelement(nformid+"_input_deliverypostcode");
	var deliverycountry = oniongetelement(nformid+"_input_deliverycountry");
	
	//get invoice inputs
	var invoicecompany = oniongetelement(nformid+"_input_invoicecompany");
	var invoiceaddress1 = oniongetelement(nformid+"_input_invoiceaddress1");
	var invoiceaddress2 = oniongetelement(nformid+"_input_invoiceaddress2");
	var invoicecity = oniongetelement(nformid+"_input_invoicecity");
	var invoicecounty = oniongetelement(nformid+"_input_invoicecounty");
	var invoicepostcode = oniongetelement(nformid+"_input_invoicepostcode");
	var invoicecountry = oniongetelement(nformid+"_input_invoicecountry");
	
	//get tick box
	var tick = oniongetelement(nformid+"_input_invoicedeliverysame");
	
	//setup quite builder object if first click
	if (tick.quotebuilder == undefined) {
		tick.quotebuilder = new Object();
		tick.quotebuilder.oldcompany = invoicecompany.value;
		tick.quotebuilder.oldaddress1 = invoiceaddress1.value;
		tick.quotebuilder.oldaddress2 = invoiceaddress2.value;
		tick.quotebuilder.oldcity = invoicecity.value;
		tick.quotebuilder.oldcounty = invoicecounty.value;
		tick.quotebuilder.oldpostcode = invoicepostcode.value;
		tick.quotebuilder.oldcountry = invoicecountry.value;
	}
	
	if (tick.checked == true) {
		//disable the inputs
		invoicecompany.readOnly = true;
		invoiceaddress1.readOnly = true;
		invoiceaddress2.readOnly = true;
		invoicecity.readOnly = true;
		invoicecounty.readOnly = true;
		invoicepostcode.readOnly = true;
		invoicecountry.readOnly = true;
		
		//store old values from invoice
		tick.quotebuilder.oldcompany = invoicecompany.value;
		tick.quotebuilder.oldaddress1 = invoiceaddress1.value;
		tick.quotebuilder.oldaddress2 = invoiceaddress2.value;
		tick.quotebuilder.oldcity = invoicecity.value;
		tick.quotebuilder.oldcounty = invoicecounty.value;
		tick.quotebuilder.oldpostcode = invoicepostcode.value;
		tick.quotebuilder.oldcountry = invoicecountry.value;
		
		//copy values from delivery
		invoicecompany.value = deliverycompany.value;
		invoiceaddress1.value = deliveryaddress1.value;
		invoiceaddress2.value = deliveryaddress2.value;
		invoicecity.value = deliverycity.value;
		invoicecounty.value = deliverycounty.value;
		invoicepostcode.value = deliverypostcode.value;
		invoicecountry.value = deliverycountry.value;
	} else {
		//enable the inputs
		invoicecompany.readOnly = undefined;
		invoiceaddress1.readOnly = undefined;
		invoiceaddress2.readOnly = undefined;
		invoicecity.readOnly = undefined;
		invoicecounty.readOnly = undefined;
		invoicepostcode.readOnly = undefined;
		invoicecountry.readOnly = undefined;
		
		//copy old details back in to inputs
		invoicecompany.value = tick.quotebuilder.oldcompany;
		invoiceaddress1.value = tick.quotebuilder.oldaddress1;
		invoiceaddress2.value = tick.quotebuilder.oldaddress2;
		invoicecity.value = tick.quotebuilder.oldcity;
		invoicecounty.value = tick.quotebuilder.oldcounty;
		invoicepostcode.value = tick.quotebuilder.oldpostcode;
		invoicecountry.value = tick.quotebuilder.oldcountry;		
	}
}

function quotebuilder_category_showhelpbubble(nobject) {
	var coords = oniongetoffset(nobject);
	var bubble = oniongetelement("quotebuilder_category_helpbubble");

	//change class name for png effect
	if (bubble.className == "quotebuilder_category_helpbubble_gif" && (isIE7 == true || isOpera == true || isFirefox == true)) {
		bubble.className = "quotebuilder_category_helpbubble_png";
	}
	
	bubble.style.display = "block";
	
	bubble.style.left = (coords.x - parseInt(bubble.offsetWidth) + 14)+"px";
	bubble.style.top = (coords.y - parseInt(bubble.offsetHeight) + 4)+"px";
	
	//bubble.style.left = (coords.x)+"px";
	//bubble.style.top = (coords.y)+"px";
}

function quotebuilder_category_hidehelpbubble() {
	var bubble = oniongetelement("quotebuilder_category_helpbubble");
	
	bubble.style.display = "none";
}

function quotebuilder_review_init() {
	//get the update totals button
	var button = oniongetelement("quotebuilder_updatetotals");

	//get all input fields and add event
	var amounts = oniongetelementsbyclass("quotebuilder_amount");
	
	//add events
	for(index=0;index<amounts.length;index++) {
		onionaddevent(amounts[index],"keydown",quotebuilder_quotreview_amountchanged,button);
	}
	
	//hide button
	button.style.display = "none";
}

function quotebuilder_quotreview_amountchanged(nobject,nevent) {
	nobject.style.display = "block";
}

function quotebuilder_categoryiteminfo_init() {
	//this will initialize the category listing
	var infoicons = oniongetelementsbyclass("quotebuilder_rowinfoicon");
	for(index=0;index<infoicons.length;index++) {
		//setup object
		infoicons[index].quotebuilder = new Object();
		
		//get numeric id
		infoicons[index].quotebuilder.itemid = infoicons[index].id.substr("quotebuilder_rowinfoicon".length);
		
		//get related objects
		infoicons[index].quotebuilder.iteminfo = oniongetelement("quotebuilder_rowinfo"+infoicons[index].quotebuilder.itemid);
		infoicons[index].quotebuilder.iteminfoiconcell = infoicons[index].parentNode;
		
		//setup icon
		onionaddevent(infoicons[index],"click",quotebuilder_categoryiteminfo_click);
	}
}

function quotebuilder_categoryiteminfo_click(nobject,nevent) {
	if (nobject.quotebuilder.iteminfoiconcell.className == "quotebuilder_rowmiddleopen") {
		var show = false;
	} else {
		var show = true;
	}

	//show/hide this info
	quotebuilder_categoryshowinfo(nobject,show);
}

function quotebuilder_categoryshowinfo(nobject,nshow) {
	var cells = oniongetelementsbyclass("quotebuilder_rowinfo",nobject.quotebuilder.iteminfo,1);

	for(index=0;index<cells.length;index++) {
		if (nshow == false) {
			cells[index].style.display = "none";
		} else {
			cells[index].style.display = "table-cell";
		}
	}
	
	if (nshow) {
		nobject.quotebuilder.iteminfoiconcell.className = "quotebuilder_rowmiddleopen";
	} else {
		nobject.quotebuilder.iteminfoiconcell.className = "quotebuilder_rowmiddleclosed";
	}
}


/* item */
function quotebuilder_itemaddtoquote_init(nid) {
	var icon = oniongetelement(nid+"icon");
	var bubble = oniongetelement(nid+"bubble");
	
	//add events to image
	
	//add mouse over effects
	onionaddevent(icon,"mouseover",quotebuilder_itemaddtoquote_mouseover);
	onionaddevent(icon,"mouseout",quotebuilder_itemaddtoquote_mouseout);
	
	//add click event
	onionaddevent(icon,"click",quotebuilder_itemaddtoquote_click,bubble);
}

function quotebuilder_itemaddtoquote_mouseover(nobject,nevent) {
	nobject.className = "quotebuilder_itemaddtoquoteicon_on";
}

function quotebuilder_itemaddtoquote_mouseout(nobject,nevent) {
	nobject.className = "quotebuilder_itemaddtoquoteicon_off";
}

function quotebuilder_itemaddtoquote_click(nobject,nevent) {
	nobject.style.display = "block";
}