/* HELPERS =========================================================================================================================  */
function LoadScript(url){
   	var e = document.createElement("script"); 
  	e.type="text/javascript";
   	e.src = url;
   	document.getElementsByTagName("body")[0].appendChild(e); 
}
function liveSearch(mod){
	var _url = 'modules/searches/'+mod+'.php?module='+mod;
	if(document.getElementById('search')){ _url += '&search='+document.getElementById('search').value; }
	if(document.getElementById('vyear')){ _url += '&vyear='+document.getElementById('vyear').options[document.getElementById('vyear').selectedIndex].value; }
	if(document.getElementById('vmonth')){ _url += '&vmonth='+document.getElementById('vmonth').options[document.getElementById('vmonth').selectedIndex].value; }
	if(document.getElementById('vstatus')){ _url += '&vstatus='+document.getElementById('vstatus').options[document.getElementById('vstatus').selectedIndex].value; }
	if(document.getElementById('vtax')){ _url += '&vtax='+document.getElementById('vtax').options[document.getElementById('vtax').selectedIndex].value; }
	LoadScript(_url);
}
function liveSubSearch(mod){
	var _url = 'modules/searches/sub'+mod+'.php?module='+mod;
	if(document.getElementById('subsearch')){ _url += '&subsearch='+document.getElementById('subsearch').value; }
	if(document.getElementById('subvyear')){ _url += '&subvyear='+document.getElementById('subvyear').options[document.getElementById('subvyear').selectedIndex].value; }
	if(document.getElementById('subvmonth')){ _url += '&subvmonth='+document.getElementById('subvmonth').options[document.getElementById('subvmonth').selectedIndex].value; }
	if(document.getElementById('substatus')){ _url += '&substatus='+document.getElementById('substatus').options[document.getElementById('substatus').selectedIndex].value; }
	LoadScript(_url);
}
function confirmDelete(d,i,n){
	if(confirm("Are you sure you want to delete "+n+"?")){
		window.location='index.html?'+d+'='+i;
	}
}














/* GUI FUNCTIONS ========================================================================================================================= */
var myCSS = document.styleSheets[0];
if(myCSS.cssRules){ var IECSS=false; }else{ var IECSS=true; }

function addCSStag(tag,content){
	if(IECSS){
		myCSS.addRule(tag, content);
	}else{
		var newRule = tag + '{' + content + ';}';
		var newIndex = myCSS.cssRules.length;
		myCSS.insertRule(newRule,newIndex); 
	}
}

function getBrowserWidth(){
	if (window.innerWidth){ return window.innerWidth-20;}else
	if (document.documentElement && document.documentElement.clientWidth != 0){return document.documentElement.clientWidth;}else
	if (document.body){return document.body.clientWidth;}
	return 0;
}
function getBrowserHeight(){
	if (window.innerHeight){ return window.innerHeight;}else
	if (document.documentElement && document.documentElement.clientHeight != 0){return document.documentElement.clientHeight;}else
	if (document.body){return document.body.clientHeight;}
	return 0;
}

function getScrollPosition() {
	return filter (
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
}
function formDiv(){
	var shader = document.getElementById('shader');
	var formdiv = document.getElementById('formOverlay');
	
	if(formdiv.style.display=='none'){
		addCSStag('html','overflow:hidden');
		
		var offsetY = getScrollPosition(); var docY = getBrowserHeight();
		if(docY>550){ var formdivOffset = offsetY + Math.round((docY-550)/2); }else{ var formdivOffset = offsetY+10; }
		formdiv.style.top=formdivOffset+'px';
		
		formdiv.style.display='block';
		shader.style.display ='block';
	}else{
		formdiv.innerHTML='';
		formdiv.style.display='none';
		shader.style.display='none';
		addCSStag('html','overflow:auto');
	}
}
// escape key handeler
function keyPressHandler(e) {
      var kC  = (window.event) ?    // MSIE or Firefox?
                 event.keyCode : e.keyCode;
      var Esc = (window.event) ?   
                27 : e.DOM_VK_ESCAPE // MSIE : Firefox
      if(kC==Esc){
         if(document.getElementById('formOverlay').style.display=='block'){
			 formDiv();
		 }
	  }
   }
if(window.addEventListener){ window.addEventListener('onkeypress', keyPressHandler, false);}
window.onkeypress = document.onkeypress = keyPressHandler;



function showTab(n){
	for(var i=1;i<=5;i++){
		if(document.getElementById('tab'+i)){document.getElementById('tab'+i).className='itemHeaderTab';}	
		if(document.getElementById('content'+i)){document.getElementById('content'+i).style.display='none';}
	}
	if(document.getElementById('tab'+n)){document.getElementById('tab'+n).className='itemHeaderTabSel';}	
	if(document.getElementById('content'+n)){document.getElementById('content'+n).style.display='block';}
}








/* FORM INTERACTION ========================================================================================================================= */
function setSelected(o,v){
	var o=document.getElementById(o);
	for(var i=0; i<o.options.length; i++){
		if(o.options[i].value==v || o.options[i].innerHTML==v){ o.selectedIndex=i; break; }		
	}
}
function setSearchResult(mod,id,name){
	if(document.getElementById(mod+'_id')){document.getElementById(mod+'_id').value=id;} 
	if(document.getElementById(mod+'_name')){document.getElementById(mod+'_name').value=name; }
	formDiv();
}
function setProductItem(p,pre){
	LoadScript('js/setProductItem.js.php?product_id='+p+'&pre='+pre);	
}
function setPrice(mod,fld){
	var excObj = document.getElementById(mod+'_exclusive');
	var exc = Number(excObj.value.replace(',','.'));
	var incObj = document.getElementById(mod+'_total');
	var inc = Number(incObj.value.replace(',','.'));
	var taxp= Number(document.getElementById(mod+'_taxp').options[document.getElementById(mod+'_taxp').selectedIndex].value);
	var taxObj = document.getElementById(mod+'_tax');
	
	var divider = 100 + taxp;
	
	
	if(fld=='inc'){
		var tax = (inc/divider)*taxp;
		var exc = money( inc - tax );
		excObj.value = exc;
		taxObj.value = money(tax);
	
	} else if(fld=='exc'){
		var tax = (exc/100)*taxp;
		var inc = money( exc + tax );
		incObj.value = inc;
		taxObj.value = money(tax);
	}
}



function saveItem(t){
	document.getElementById('FormDivForm').submit();
	setTimeout("formDiv()",500);
	setTimeout("getItems('"+t+"')",800);
}
function getItems(t){
	if(document.getElementById('update')){ var id = document.getElementById('update').value; }else{ var id=0; }
	LoadScript("inc_forms/form_"+t+"item.php?getitems=1&"+t+"_id="+id+"&itemIdentifier="+document.getElementById('itemIdentifier').value);
}
function delItem(id,t){
	if(confirm("Are you sure you want to delete this item?")){
		LoadScript("inc_forms/form_"+t+"item.php?delitem="+id);
		setTimeout("getItems('"+t+"')",300);
	}
}


function getCode(date,t){
	LoadScript("js/get"+ucfirst(t)+"Code.js.php?date="+date);
}
function sendPDF(t){
	if(confirm('Are you sure you want to send this '+t+' to '+document.getElementById(t+'_emailname').value+' ('+document.getElementById(t+'_emailadres').value+') ?')){
		document.getElementById(t+'Form').submit();
	}	
}


function exportQuote2InvPro(){
	document.getElementById('FormDivForm').submit();
	setTimeout("goLastPage('projects','detail')",400);
}
function exportProject2Inv(){
	document.getElementById('FormDivForm').submit();
	setTimeout("goLastPage('invoices','detail')",400);
}

function goLastPage(p,o){
	LoadScript("js/goLastPage.php?p="+p+"&o="+o);
}



function delHosting(){
	document.getElementById('FormDivForm').submit();
	setTimeout("window.location='index.html?module=hosting'",400);
}


function checkDomain(){
	var domain = document.getElementById('domain_name').value;
	if(domain.indexOf('.')>0){
		var splitDom = domain.split('.');
		document.getElementById('domain_name').value = splitDom[0];
		if(document.getElementById('domain_extension').value==''){
			if(!splitDom[2]){
				document.getElementById('domain_extension').value = splitDom[1];
			}else{
				document.getElementById('domain_extension').value = splitDom[1]+'.'+splitDom[2];
			}
		}
		document.getElementById('domain_extension').focus();	
	}	
}

function setDomain(did){
	LoadScript("js/setDomain.js.php?domain_id="+did);
}

function wh2ph(t){
	var workHours = Number(formatHours(document.getElementById(t+'_workhours'),true));

	if(formatHours(document.getElementById(t+'_planninghours'),true)<workHours){ 
		document.getElementById(t+'_planninghours').value=formatHours(workHours,true);
	}
	document.getElementById(t+'_exclusive').value=money(workHours*Number(document.getElementById('HOUR_COST').value)); 
	setPrice(t,'exc'); 
}



function sumHours(t,m){
	if(t=='w'){ 
		if(Number(formatHours(document.getElementById(m+'_emp1ph'),true))<Number(formatHours(document.getElementById(m+'_emp1wh'),true))){ document.getElementById(m+'_emp1ph').value = formatHours(document.getElementById(m+'_emp1wh'),true); }
		if(Number(formatHours(document.getElementById(m+'_emp2ph'),true))<Number(formatHours(document.getElementById(m+'_emp2wh'),true))){ document.getElementById(m+'_emp2ph').value = formatHours(document.getElementById(m+'_emp2wh'),true); }
		if(Number(formatHours(document.getElementById(m+'_emp3ph'),true))<Number(formatHours(document.getElementById(m+'_emp3wh'),true))){ document.getElementById(m+'_emp3ph').value = formatHours(document.getElementById(m+'_emp3wh'),true); }
		
		document.getElementById(m+'_workhours').value = money(	Number(formatHours(document.getElementById(m+'_emp1wh'),true)) + Number(formatHours(document.getElementById(m+'_emp2wh'),true)) + Number(formatHours(document.getElementById(m+'_emp3wh'),true))		).replace(',','.');
		document.getElementById(m+'_planninghours').value=document.getElementById(m+'_workhours').value;
		
		if(document.getElementById('HOUR_COST') && document.getElementById(m+'_exclusive')){
			document.getElementById(m+'_exclusive').value = money(	Number(document.getElementById(m+'_workhours').value) * Number(document.getElementById('HOUR_COST').value)	);
			setPrice(m,'exc');
		}
	}else{ 
		document.getElementById(m+'_planninghours').value = money(	Number(formatHours(document.getElementById(m+'_emp1ph'),true)) + Number(formatHours(document.getElementById(m+'_emp2ph'),true)) + Number(formatHours(document.getElementById(m+'_emp3ph'),true))		).replace(',','.');
	}
}










/* STRING MANIPULATION ========================================================================================================================= */
function money(Mnum){
	Mnum = String(Mnum);
	Mnum = Number(Mnum.replace(',','.'));
	Mnum = Math.round(Mnum*100)/100; Mnum = ''+Mnum+'';
	if(Mnum == '' || Mnum == '0') { Mnum = '0,00'; }else{
		Mafter = Mnum.split('.'); MCount = Mafter.length
		if(MCount == 2){
			Mlength = Mafter[1].length;
			if (Mlength == 1){Mnum = Mnum+'0';}
		}else{
			Mnum = Mnum+'.00';
		}
		Mnum = Mnum.replace('.',',');
	}
	return Mnum;
}
function replaceAll(strText, strTarget, strSubString){
	var intIndexOfMatch = strText.indexOf( strTarget );
	while (intIndexOfMatch != -1){
		strText = strText.replace( strTarget, strSubString )
		intIndexOfMatch = strText.indexOf( strTarget );
	}
	return( strText );
}

function safeFilename(string){
	string = replaceAll(string,' ', '-');
	string = replaceAll(string,'&amp;', '-');
	string = replaceAll(string,'&', '-');
	string = replaceAll(string,'\'', '');
	string = replaceAll(string,'"', '');
	string = replaceAll(string,':', '');
	string = replaceAll(string,'?', '');
	string = replaceAll(string,'/', '');
	string = replaceAll(string,'\\', '');
	string = replaceAll(string,';', '');
	string = replaceAll(string,'#', '');
	string = replaceAll(string,'$', '');
	string = replaceAll(string,'%', '');
	string = replaceAll(string,'@', '');
	string = replaceAll(string,',', '');
	string = replaceAll(string,'*', '');
	string = replaceAll(string,'|', '');
	return (string);
} 
function filter(vwin, vdocel, vbody) {
	var vresult = vwin ? vwin : 0;
	if (vdocel && (!vresult || (vresult > vdocel)))
		vresult = vdocel;
	return vbody && (!vresult || (vresult > vbody)) ? vbody : vresult;
}


function ucfirst(s) {
    s += '';
    var o = s.charAt(0).toUpperCase();
    return o + s.substr(1);
}

function formatHours(o,r){
	if(typeof(o)=='object'){
		if(r){
			return money(o.value.replace(':','.')).replace(',','.');
		}else{
			o.value = money(o.value.replace(':','.')).replace(',','.');
		}
	}else{
		o=String(o);
		return money(o.replace(':','.')).replace(',','.');
	}
}





































