var changed = false;
var nosubmit = false;
var emailenNaarDialog = null;
var emailBestelopdrachtDialog = null;

function toonOmschrijving(parent,obj) {
	pos = getElementPosition(parent.id);
	obj.style.top = pos.top + pos.height+'px';
	obj.style.display = 'block';
}

function checkofferte(checkleeg,checkemail,checkonderwerp) {
	if(checkleeg) {
		if(document.getElementById("dragcontainer0")==null) {
			alert('De offerte is leeg');
			return false;
		}
		/*
		 * controleren of er een regel is dat geen optie is, met aantal 0
		 * en wel artikelcode ingevuld
		 */
		var counter = 0;
		while(document.getElementById("dragcontainer"+counter)!=null) {
			if( document.getElementById("aantal"+counter) != null &&
				(document.getElementById("optie"+counter)==null || !document.getElementById("optie"+counter).checked) &&
				parseInt(document.getElementById("aantal"+counter).value)==0 &&
				(document.getElementById("productcode"+counter).value.length!=0 ||
				(document.getElementById("prijs"+counter) != null && document.getElementById("prijs"+counter).value!="0,00"))) {
					alert("Aantal mag niet nul zijn als de artikelcode of verkoopprijs is ingevuld; verwijder de regel of vink optie aan bij productcode '"+document.getElementById("productcode"+counter).value+"'");
					return false;
			}
			counter ++;
		}
	}
	if(checkemail) {
		if(document.getElementById("emailadres").value=="") {
			alert('E-mailadres moet worden ingevuld');
			return false;
		}
	}
	if(checkonderwerp) {
		if(document.offerteform.HttpProxy_onderwerp.value=='') {
			alert('Onderwerp moet worden ingevuld');
			return false;
		}
	}
	return true;
}

function setchanged() {
	document.getElementById('wijzigingenknop').className='rodeknop';
	changed = true;
}

function bevestigemail() {
	if(document.offerteform.HttpProxy_emailadres.value=="") {
		alert('Emailadres moet worden ingevuld');
		return false;
	}
	return confirm('Wil je deze offerte emailen naar '+document.offerteform.HttpProxy_emailadres.value+'?');
}

var visiblediv = null;

function setRegelmarges(evt,obj) {
	if(evt.keyCode==13) {
		tmp = ''+(1.0 * obj.value.replace(',','.'));
		if(tmp=='NaN') {
			alert('Geen geldig percentage ingevuld.');
			return;
		}

		var counter = 0;
		while(document.getElementById('dragcontainer'+counter)!=null) {
			try {
				margeobj = document.getElementById('regelmarge'+counter);
				inkoopobj = document.getElementById('inkoopprijs'+counter);
				margeobj.value = obj.value;
				calcRegelmarge(evt,margeobj,inkoopobj.value,'prijs'+counter)
			} catch(e) {
				// niks doen als er een fout bedrag/percentage is ingevuld
			}
			counter++;
		}
		obj.value = '%';
	}
}
function calcRegelmarge(evt,obj,inkoop,prijsid) {
	if(evt.keyCode==13) {
		inkoop = 1.0 * inkoop.replace(',','.');
		marge = 1.0 * obj.value.replace(',','.');
		tmp = ''+Math.round(inkoop*(100+marge));
		if(tmp=='NaN') {
			alert('Geen geldig percentage ingevuld.');
			return;
		}
		if(tmp.length>2) {
			tmp = tmp.substr(0,tmp.length-2)+','+tmp.substr(tmp.length-2);
		} else if(tmp.length>1) {
			tmp = '0,'+tmp;
		} else {
			tmp = '0,0'+tmp;
		}
		prijsobj = document.getElementById(prijsid);
		prijsobj.value = tmp;

		setchanged();

		//obj.blur();
	}
}

function regeldelete(regelid) {
	document.offerteform.HttpProxy_arraynr.value=regelid;
	loadOfferteinhoud('regeldelete');
}

function regelcopy(regelid) {
	document.offerteform.HttpProxy_arraynr.value=regelid;
	loadOfferteinhoud('regelcopy');
}

function changeOrder(oldidx,newidx) {
	document.offerteform.HttpProxy_parm1.value=oldidx;
	document.offerteform.HttpProxy_parm2.value=newidx;
	loadOfferteinhoud('reorder');
}

function clearForm() {
	if(document.offerteform!=null) {
		document.offerteform.HttpProxy_fn.value='';
		document.offerteform.HttpProxy_parm1.value='';
		document.offerteform.HttpProxy_parm2.value='';
		document.offerteform.HttpProxy_parm3.value='';
	}
	YAHOO.util.Connect.resetFormState();
}

function loadOverzicht(sid,surl) {
	clearForm();
	var now = new Date();
	surl += "&noCache="+now.getTime();
	document.getElementById(sid).innerHTML = 'Pagina wordt geladen';
//	var callback =
//	{
//	  success: onLoadOverzicht,
//	  failure: onFailure,
//	  argument: {id: sid}
//	}
//	YAHOO.util.Connect.asyncRequest('GET', surl, callback, null);
	bncAjaxConnection({
		url:surl,
		method:'GET',
		success: onLoadOverzicht,
		  failure: onFailure,
		  argument: {id: sid}
	});
}

function onLoadOverzicht(o) {
	if(o.responseText !== undefined) {
		document.getElementById(o.argument.id).innerHTML = o.responseText;
	}
}

function onFailure(o) {
	if(o.statusText !== undefined) {
		if(o.status==-1){
			alert("Er kan geen verbinding gemaakt worden met de server. Ververs de pagina en probeer het opnieuw.");
		}else{
			alert(o.statusText);
		}
	}
	momentDialog.hide();
}

function loadOfferteinhoud(fn,formid,selectactivearea) {
	var now = new Date();
	var callback =
	{
	  success: onLoadOfferteinhoud,
	  upload: onLoadOfferteinhoud,
	  failure: onFailure,
	  timeout:180000,
	  argument: {fn: fn, selectactivearea: selectactivearea}
	}
	if(formid==null) {
		formid="offerteform";
	}
	document[formid].HttpProxy_fn.value = fn;

	if(fn=="emailsave"||fn=="save"||fn=="actualiseer"||fn=="savestandaardassortiment"||fn=="email"||
		fn=="bestelopdracht"||fn=="update") {
		tinyMCE.triggerSave();
		momentDialog.show();
	} else {
		if(document.getElementById("HttpProxy_emailtekst_parent")!=null) {
			tinyMCE.execCommand('mceRemoveControl', false, 'HttpProxy_emailtekst');
			tinyMCE.execCommand('mceAddControl', false, 'HttpProxy_emailtekst');
		}
	}
	document[formid].HttpProxy_activearea.value=getActivearea();
	if(fn=="emailsave") {
		YAHOO.util.Connect.setForm(document.getElementById(formid),true,true);
	} else {
		YAHOO.util.Connect.setForm(document.getElementById(formid));
	}
	YAHOO.util.Connect.asyncRequest("POST", "/offerte/offerte/offerte-inhoud?noCache="+now.getTime(), callback, "");
}

function onLoadOfferteinhoud(o) {
	momentDialog.hide();
	clearForm();
	updateOverzicht(false);
	if(o.argument.fn=="bestelopdracht") {
		document.getElementById('onderwerp').value = "";
	}
	if (document.getElementById("tabcontentofferte") != null) {
		document.getElementById("tabcontentofferte").innerHTML = o.responseText;
		document.getElementById("wijzigingenknop").className = "disabledknop";
		if (document.getElementById("offerteArtikelInput") != null) {
			// define autocomplete
			var artikelSchema = ["zoekresultaten", "xml_artikelen_productcode", "xml_artikelen_omschrijving", "xml_artikelen_assortiment"];
			var artikelXHRDataSource = new YAHOO.widget.DS_XHR(gateway, artikelSchema);
			// disable the cache
			artikelXHRDataSource.maxCacheEntries = 0;
			artikelXHRDataSource.responseType = YAHOO.widget.DS_XHR.TYPE_JSON;
			artikelXHRDataSource.scriptQueryParam = "zoek";
			artikelXHRDataSource.scriptQueryAppend = "appclass=nl.bnc.bncweb.system.applicatie.webshop.BWAppArtikelzoeker&json=1&translatejson=1&fn=zoek&menuid=1";
			var artikelAutoComp = new YAHOO.widget.AutoComplete("offerteArtikelInput", "offerteArtikelContainer", artikelXHRDataSource);
			artikelAutoComp.minQueryLength = 3;
			artikelAutoComp.maxResultsDisplayed = 25;
			artikelAutoComp.formatResult = function(aResultItem, sQuery){
				var productcode = aResultItem[0];
				var omschrijving = aResultItem[1];
				var assortiment = aResultItem[2];
				var aMarkup = ["<div>", (assortiment == "1") ? "<font color='blue'>" : "<font color='red'>", productcode, "</font> - ", omschrijving, "</div>"];
				return (aMarkup.join(""));
			};
			var itemSelectHandler = function(sType, aArgs){
				bestel(aArgs[2][0], 1, null, false);
				document.getElementById("offerteArtikelInput").value = "";
			};
			artikelAutoComp.itemSelectEvent.subscribe(itemSelectHandler);
			try {
				if (document.getElementById("tabcontentofferte").style.display == "block") {
					document.getElementById("offerteArtikelInput").focus();
				}
				else {
					document.getElementById("onderwerp").focus();
				}
			}
			catch (e) {/*ignore*/
			}
		}
		if (document.getElementById("verloopdatum") != null) {
			Calendar.setup({
				inputField: "verloopdatum",
				ifFormat: "%d-%m-%Y",
				showsTime: false,
				timeFormat: "24",
				mondayFirst: false,
				weekNumbers: true,
				onUpdate: setchanged
			});
		}
		if (document.getElementById("HttpProxy_emailtekst") != null && document.getElementById("HttpProxy_emailtekst_parent") == null) {
			tinyMCE.idCounter = 0;
			tinyMCE.execCommand('mceRemoveControl', false, 'HttpProxy_emailtekst');
			tinyMCE.execCommand('mceAddControl', false, 'HttpProxy_emailtekst');
			/*
			 * if we open a quotation and the page already exists, copy the new emailtext from the hidden field
			 */
			if(document.getElementById("hidden_emailtekst") != null ) {
				document.getElementById("HttpProxy_emailtekst").value = document.getElementById("hidden_emailtekst").value;
				tinyMCE.triggerSave();
			}
		}
		if (document.getElementById("emailenNaarDialog_c") == null) {
			maakOfferteDialogs();
		}
		initDrag();
		var counter = 0;
		while (true) {
			if (document.getElementById("dragcontainer" + counter) != null) {
				addDrop("dragcontainer" + counter);
			}
			else {
				break;
			}
			counter++;
		}
		if ("0" != "0" && document.getElementById("HttpProxy_emailtekst") != null) {
			document.getElementById("HttpProxy_emailtekst").onkeypress = setchanged;
			document.getElementById("HttpProxy_emailtekst").onchange = setchanged;
		}
		if (o.argument.selectactivearea != null && o.argument.selectactivearea) {
			selectActivearea(getActivearea(), false);
		}
		if (document.getElementById("offerteinhouderror") != null) {
			alert(document.getElementById("offerteinhouderror").value);
		}
	} else {
		document.location.href = '/#location='+escape('/offerte?op=makePrintable&noCache='+new Date().getTime()+'&HttpProxy_activearea=')+getActivearea();
	}
}

function onPageLoad_offerte(){
	if("0"!="0") {
		window['offerteTabs'] = new bncTabs("offerte");
		window['offerteTabs'].addTabId('offerte');
		window['offerteTabs'].addTabId('email');
		if(document.getElementById('tabstandaardassortiment')!=null) {
			window['offerteTabs'].addTabId('standaardassortiment');
		}
		window['offerteTabs'].addTabId('voorbeeld');
		loadOfferteinhoud("view");
		window['offerteTabs'].toggleTab('offerte');
	} else {
		loadOfferteinhoud("view");
	}
}
function onPageActivate_offerte(){
	if(document.getElementById("offerteArtikelInput")!=null) {
		if(document.getElementById("tabcontentofferte").style.display=="block") {
			document.getElementById("offerteArtikelInput").focus();
		} else {
			document.getElementById("onderwerp").focus();
		}
	}
}
function maakOfferteDialogs(){
	if (document.getElementById("emailenNaarDialog") != null) {
		emailenNaarDialog = new YAHOO.widget.SimpleDialog('emailenNaarDialog', {
			width: "400px",
			fixedcenter: true,
			modal: true,
			visible: false,
			draggable: false
		});
		emailenNaarDialog.render(document.getElementById('jspform'));
	}
	if(document.getElementById("emailbestelopdracht")!=null) {
		emailBestelopdrachtDialog = new YAHOO.widget.SimpleDialog('emailbestelopdracht', {
			width: "400px",
			fixedcenter: true,
			modal: true,
			visible: false,
			draggable: false
		});
		emailBestelopdrachtDialog.render(document.getElementById('jspform'));
	}
}
function naarBestelling() {
	document.location.href = '/#location='+escape('/order?op=makePrintable&noCache='+new Date().getTime()+'&HttpProxy_fn=init&HttpProxy_activearea=')+getActivearea();
}
function onPageLoad_order(){
	if(document.getElementById("klantdatum")!=null) {
		Calendar.setup({
		    inputField : "klantdatum",
		    ifFormat : "%d-%m-%Y",
		    showsTime : false,
		    timeFormat : "24",
		    mondayFirst : true,
		    weekNumbers: true,
			disableFunc: disallowDate
		    });
	}
	if(document.getElementById("setbesteladres")!=null) {
		setBestelAdres(document.getElementById("setbesteladres").value);
	}
}
function setBestelAdres(arraynr) {
	debnaam = document.getElementById("debnaam"+arraynr).value;
	if(debnaam=="") {
		document.getElementById("naam").value = document.getElementById("defaultdebnaam").value;
	} else {
		document.getElementById("naam").value = debnaam;
	}
	tav = document.getElementById("tav"+arraynr).value;
	if(tav=="") {
		document.getElementById("tav").value = document.getElementById("defaulttav").value;
	} else {
		document.getElementById("tav").value = tav;
	}
	document.getElementById("adres").value = document.getElementById("adres"+arraynr).value;			
	document.getElementById("postcode").value = document.getElementById("postcode"+arraynr).value;			
	document.getElementById("plaats").value = document.getElementById("plaats"+arraynr).value;			
	document.getElementById("land").value = document.getElementById("land"+arraynr).value;			
}
function disallowDate(date) {
	var mindat = new Date();
	mindat.setDate(mindat.getDate());
	if(date.getTime()<mindat.getTime()||date.getDay()==0||date.getDay()==6) {
		return true;
	}
	return false;
}
function setAdres(arraynr) {
	debnaam = document.getElementById("bestelling_debnaam"+arraynr).value;
	if(debnaam=="") {
		document.getElementById("bestelling_naam").value = document.getElementById("bestelling_defaultdebnaam").value;
	} else {
		document.getElementById("bestelling_naam").value = debnaam;
	}
	tav = document.getElementById("bestelling_tav"+arraynr).value;
	if(tav=="") {
		document.getElementById("bestelling_tav").value = document.getElementById("bestelling_defaulttav").value;
	} else {
		document.getElementById("bestelling_tav").value = tav;
	}
	document.getElementById("bestelling_adres").value = document.getElementById("bestelling_adres"+arraynr).value;			
	document.getElementById("bestelling_postcode").value = document.getElementById("bestelling_postcode"+arraynr).value;			
	document.getElementById("bestelling_plaats").value = document.getElementById("bestelling_plaats"+arraynr).value;			
	document.getElementById("bestelling_land").value = document.getElementById("bestelling_land"+arraynr).value;			
}
function plaatsBestelling() {
//	var now = new Date();
//	var callback =
//	{
//	  success: onLoadPlaatsBestelling,
//	  failure: onFailure
//	}
	document.bestellingform.HttpProxy_activearea.value=getActivearea();
//	YAHOO.util.Connect.setForm(document.getElementById("bestellingform"));
//	YAHOO.util.Connect.asyncRequest("POST", "/order/order?noCache="+now.getTime(), callback, "");
	bncAjaxConnection({
		url:"/order/order",
		formid:'bestellingform',
		method:'POST',
		 success: onLoadPlaatsBestelling,
		  failure: onFailure
	});
}
function onLoadPlaatsBestelling(o) {
	document.getElementById("bestellingdiv").innerHTML = o.responseText;
	if(document.getElementById("bestelling_besteld")!=null) {
		updateOverzicht();
	}
	// forceer herladen offerte
	if (document.getElementById("pageId_offerte") != null) {
		// offertepagina bestaat, deze verwijderen
		document.getElementById("pageId_offerte").parentNode.removeChild(document.getElementById("pageId_offerte"));
	}
}
tinyMCE.init({
	mode : 'exact',
	plugins : 'contextmenu,advhr,table,preview,searchreplace',
	theme_advanced_source_editor_width : '600',
    theme_advanced_source_editor_height : '500',
	theme_advanced_statusbar_location : 'bottom',
	theme_advanced_buttons1 : 'bold,italic,justifyleft,justifyright,justifycenter,justifyfull,indent,outdent,sub,sup,formatselect,removeformat,contextmenu',
	theme_advanced_buttons2 : 'bullist,numlist,link,anchor,unlink,advhr,image,charmap',
	theme_advanced_buttons3 : 'tablecontrols,visualaid,preview,code,cleanup,replace',
	theme_advanced_resizing : true,
	theme_advanced_toolbar_location : 'bottom',
    urlconvertor_callback : 'tinyMCE_WebGUI_URLConvertor',
    relative_urls : false,
    wg_userIsVisitor : false,
    theme : 'advanced',
    language : 'nl',
	remove_linebreaks : true,
	force_br_newlines : true,
	force_p_newlines : false,
	apply_source_formatting : false,
    forced_root_block : '' // Needed for 3.x
});



