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("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).value!="0,00")) {
					alert("Aantal mag niet nul zijn als de artikelcode of verkoopprijs is ingevuld; 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); 
}

function onLoadOverzicht(o) {
	if(o.responseText !== undefined) {
		document.getElementById(o.argument.id).innerHTML = o.responseText;
	}
}

function onFailure(o) {
	if(o.responseText !== undefined) {
		document.getElementById(o.argument.id).innerHTML = o.statusText;
	}
	momentDialog.hide();
}

function loadOfferteinhoud(fn,formid,selectactivearea) {
	var now = new Date();
	var callback =
	{
	  success: onLoadOfferteinhoud,
	  upload: onLoadOfferteinhoud,
	  failure: onFailure,
	  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 = "";
	}
	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('mceAddControl', false, 'HttpProxy_emailtekst');
	}
	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);
	}
}

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 checkBestelling() {
	if(document.getElementById('dragcontainer0')==null) {
		alert('De bestelling is leeg');
		return false;
	}
	return true;
}
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, "");
}
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({
	plugins : 'contextmenu,pagetree,advhr,insertImage,collateral,table,preview,searchreplace',
    theme_advanced_source_editor_height : '500',
    nowrap : false,
    force_br_newlines : true,
    mode : 'exact',
    theme_advanced_resizing : true,
    urlconvertor_callback : 'tinyMCE_WebGUI_URLConvertor',
    theme_advanced_statusbar_location : 'bottom',
    relative_urls : false,
    theme_advanced_source_editor_width : '600',
    wg_userIsVisitor : false,
    preformatted : false,
    theme_advanced_buttons3 : 'tablecontrols,visualaid,preview,code,cleanup,replace',
    theme : 'advanced',
    language : 'en',
    theme_advanced_buttons1 : 'bold,italic,justifyleft,justifyright,justifycenter,justifyfull,indent,outdent,sub,sup,formatselect,removeformat,contextmenu',
    theme_advanced_buttons2 : 'bullist,numlist,link,pagetree,anchor,unlink,advhr,image,insertImage,charmap,collateral',
    remove_linebreaks : false,
    force_p_newlines : false,
    theme_advanced_toolbar_location : 'bottom',
    directionality : 'ltr'
});