function tlbMain_Click(oToolbar, oButton, oEvent)
{
    if (oButton.Key == "Save")
    {
		Page_ClientValidate();
	}
}


function ShowPopupMenu(menuName) 
{
    var button = event.srcElement;
    var x = button.offsetLeft + button.offsetWidth;
    var y = button.offsetTop + button.offsetHeight;
    igmenu_showMenu(menuName, event, x, y); 
    return false;
}

// ################################################################################################
// AJAX HELPERS
// ################################################################################################

function InitializeRequest(sender, args) 
{
    document.body.style.cursor = 'wait'; 
}

function EndRequest(sender, args) 
{
    document.body.style.cursor = 'default';
}

function BindValue(value, controlID)
{
    if (controlID == null)
        return;
        
    control = document.getElementById(controlID);
    
    if (control == null)
    {
        while(controlID.indexOf("$") > 0) controlID = controlID.replace("$", "_");
        control = document.getElementById(controlID);
    }
        
    if (control == null)
        return;

    if (value != null)
    {
         control.value = value;
         try
         {
            control.innerText = value;
         }
         catch(e){}
     }
    else control.value = "";
}

// ################################################################################################
// COLLAPSIBLEPANEL
// ################################################################################################

function Collapse(id, collapse, expand)
{
    var container   = document.getElementById('container_' + id);
	var legendImage = document.getElementById('image_' + id);
	var state       = document.getElementById('state_' + id);

	if (state.value == 'block')
	{
	    container.style.display = 'none';
	    legendImage.src = expand;
	    state.value = 'none';
	}
	else
	{
	    container.style.display = 'block';
	    legendImage.src = collapse;
	    state.value = 'block';
	}
	
	/*
	if (container.style.display == "block")
	{
	    container.style.display = "none";
	    legendImage.src = "/Images/Expanded.gif";
	}
	else
	{
	    container.style.display = "block"; 
	    legendImage.src = "/Images/Collapsed.gif";
	}
	*/
	/*
	container.style.display = (container.style.display == "block") ? "none" : "block";
	legendImage.src = (container.style.display == "block") ? collapse : expand;
	*/
	
}

function ExpandCollapse(container, collapse, expand)
{
	var obj = document.getElementById(container + '_collapsible');
	var fld = document.getElementById(container + '_state');
	var img = document.getElementById(container + '_button');

	if (obj != null)
	{
		var p = obj.style
		obj.style.display = (obj.style.display == "block") ? "none" : "block";
		fld.value = obj.style.display;
		img.src = (fld.value == "block") ? collapse : expand;
	}
}

// ################################################################################################
// CODECOMBOBOXCONTROl
// ################################################################################################

function SetTextValue(txtval,ddlval)
{
	var ddl = document.getElementById(ddlval);
	var txt = document.getElementById(txtval);
	if (ddl == null || txt == null) {
		return false;
	}
	txt.value = ddl.options[ddl.options.selectedIndex].value;
}
function SetDropDownListValue(txtval,ddlval)
{
	var ddl = document.getElementById(ddlval);
	var txt = document.getElementById(txtval);
	var boolwrongtxtval = new Boolean();
	if (ddl == null || txt == null) 
	{
		return false;
	}
	
	var val = txt.value;
	boolwrongtxtval = true;
	
	for (i = 0; i < ddl.length; i++)
	{
	    var trimmedval = trim(ddl[i].value);
		if (trimmedval == val ||trimmedval == val.toUpperCase())
		{
			ddl[i].selected = true;
			boolwrongtxtval = false;
            break;
		}
	}
	
    if(boolwrongtxtval == true)
    {
        var boolvaluestillok = new Boolean(false);  
		for (i = 0; i < ddl.length; i++){
	         var trimmedval = trim(ddl[i].value);
			 for (j = 0; j < trimmedval.length; j++)
			 {
	             if (trimmedval.substring(0,j) == val ||trimmedval.substring(0,j) == val.toUpperCase())
	             {
                       boolvaluestillok = true;
		         }
	         }
		}
		
		if (boolvaluestillok == false)
		{
            txt.value = txt.value.substring(0,(txt.value.length-1)); 
		}
    }
    
	return false;
}

function trim(valtotrim)
{
    var m = valtotrim.match(/^\s*(\S+(\s+\S+)*)\s*$/);
    return (m == null) ? '' : m[1];
}

// ################################################################################################
// FORMATDATE
// ################################################################################################

var MONTH_NAMES = new Array('januari','februari','maart','april','mei','juni','juli','augustus','september','oktober','november','december','jan','feb','maa','apr','mei','jun','jul','aug','sep','okt','nov','dec');
var DAY_NAMES = new Array('zondag','maandag','dinsdag','woensdag','donderdag','vrijdag','zaterdag','zo','ma','di','wo','do','vr','za');

function LZ(x) 
{
    return(x<0||x>9?"":"0")+x
}
  
function formatDate(date,format) 
{
	format=format+"";
	var result="";
	var i_format=0;
	var c="";
	var token="";
	var y=date.getYear()+"";
	var M=date.getMonth()+1;
	var d=date.getDate();
	var E=date.getDay();
	var H=date.getHours();
	var m=date.getMinutes();
	var s=date.getSeconds();
	var yyyy,yy,MMM,MM,dd,hh,h,mm,ss,ampm,HH,H,KK,K,kk,k;
	// Convert real date parts into formatted versions
	var value=new Object();
	
	if (y.length < 4) 
	{
	    y=""+(y-0+1900);
	}
	
	value["y"]=""+y;
	value["yyyy"]=y;
	value["yy"]=y.substring(2,4);
	value["M"]=M;
	value["MM"]=LZ(M);
	value["MMM"]=MONTH_NAMES[M-1];
	value["NNN"]=MONTH_NAMES[M+11];
	value["d"]=d;
	value["dd"]=LZ(d);
	value["E"]=DAY_NAMES[E+7];
	value["EE"]=DAY_NAMES[E];
	value["H"]=H;
	value["HH"]=LZ(H);
	
	if (H==0)
	{
	    value["h"]=12;
	}
	else if (H>12)
	{
	    value["h"]=H-12;
	}
	else 
	{
	    value["h"]=H;
	}
	
	value["hh"]=LZ(value["h"]);
	
	if (H>11)
	{
	    value["K"]=H-12;} else {value["K"]=H;
	}
	
	value["k"]=H+1;
	value["KK"]=LZ(value["K"]);
	value["kk"]=LZ(value["k"]);
	if (H > 11) 
	{ 
	    value["a"]="PM"; 
	}
	else 
	{ 
	    value["a"]="AM"; 
	}
	
	value["m"]=m;
	value["mm"]=LZ(m);
	value["s"]=s;
	value["ss"]=LZ(s);
	
	while (i_format < format.length) 
	{
		c=format.charAt(i_format);
		token="";
		while ((format.charAt(i_format)==c) && (i_format < format.length)) 
		{
			token += format.charAt(i_format++);
		}
		
		if (value[token] != null) 
		{ 
		    result=result + value[token]; 
		}
		else 
		{ 
		    result=result + token; 
		}
	}
	
	return result;
}

//trim method to trim strings
String.prototype.trim = function() 
{ 
     return this.replace(/^\s+|\s+$/g, ''); 
}

// ################################################################################################
// DROPDOWNLIST
// ################################################################################################

var typeAheadInfo = {last:0, 
	accumString:"", 
   delay:750, 
   timeout:null, 
   selectElem:null, 
   changeEvent:function() {if (this.selectElem) {if (this.selectElem.attributes["onchange"]){eval(this.selectElem.attributes["onchange"].value.replace('this','this.selectElem'))} }}, 
   reset:function() {this.last=0; this.accumString=""; this.changeEvent(); this.selectElem=null} 
   }; 
function typeAhead() { 
   if (window.event && !window.event.ctrlKey) { 
      var now = new Date(); 
      if (typeAheadInfo.accumString == "" || now - typeAheadInfo.last < typeAheadInfo.delay) { 
         var evt = window.event; 
         var selectElem = evt.srcElement; 
         typeAheadInfo.selectElem = selectElem; 
         var charCode = evt.keyCode; 
		 if (charCode >= 96 && charCode <=105) { 
			charCode = charCode - 48; 
		 } 
		 if (charCode == 9 || charCode == 16 || charCode == 18) { 
		    return 
		 } 
         var newChar =  String.fromCharCode(charCode).toUpperCase(); 
         typeAheadInfo.accumString += newChar; 
         var selectOptions = selectElem.options; 
         var txt, nearest; 
         for (var i = 0; i < selectOptions.length; i++) { 
            txt = selectOptions[i].text.toUpperCase(); 
            nearest = (typeAheadInfo.accumString > txt.substr(0, typeAheadInfo.accumString.length)) ? i : nearest; 
			if (txt.indexOf(typeAheadInfo.accumString) == 0) { 
               clearTimeout(typeAheadInfo.timeout); 
               typeAheadInfo.last = now; 
               typeAheadInfo.timeout = setTimeout("typeAheadInfo.reset()", typeAheadInfo.delay); 
               selectElem.selectedIndex = i; 
               evt.cancelBubble = true; 
               evt.returnValue = false; 
               return false; 
            }  
         } 
      } else { 
         clearTimeout(typeAheadInfo.timeout); 
      } 
      typeAheadInfo.reset(); 
   } 
   return true; 
} 

// ################################################################################################
// SHOW/HIDE MENU
// ################################################################################################

function getColName(col_number) { 
    return ("COL" + col_number); 
} 

function showhideColumn(col_number) {
	col_name = getColName(col_number); 
    oColumn = document.all(col_name, 0); /* Get ptr to column object */ 
	if (oColumn.style.display == "none")
	{
		oColumn.style.display = "block";
	}
	else
	{
		oColumn.style.display = "none";
	}
}


function showhideColumnImage(col_number, imageShow, imageHide, imageId) {
	col_name = getColName(col_number); 
    oColumn = document.all(col_name, 0); /* Get ptr to column object */ 
	oImage = document.all(imageId, 0);
	if (oColumn.style.display == "none")
	{
		oColumn.style.display = "block";
		oImage.src = imageHide;
	}
	else
	{
		oColumn.style.display = "none";
		oImage.src = imageShow;
	}
}
	
// ################################################################################################
// ORGANISATIE INFO TOOLTIP
// ################################################################################################

var tooltipHtmlTemplate = '<table><tr><td>Titel:</td><td>#Titel#</td></tr><tr><td>Datum:</td><td>#Datum#</td></tr><tr><td>Organisatie:</td><td>#Vereniging#</td></tr><tr><td>Locatie:</td><td>#LocatieOmschrijving#</td></tr><tr><td>&nbsp;</td><td>#LocatieAdres#</td></tr><tr><td>&nbsp;</td><td>#LocatiePlaats#</td></tr><tr><td>Verantwoordelijke:</td><td>#Verantwoordelijke#</td></tr><tr><td>Verantw. Tel.:</td><td>#VerantwoordelijkeTelefoon#</td></tr><tr><td style=height:10px;></td><td></td></tr><tr><td>Afsluiting voorinschrijvingen:</td><td>#AfsluitingVoorinschrijvingen#</td></tr><tr><td>Openstelling inschrijvingen:</td><td>#OpenstellingInschrijvingen#</td></tr><tr><td>Afsluiting inschrijvingen:</td><td>#AfsluitingInschrijvingen#</td></tr><tr><td>Openstelling rijtijdkaarten:</td><td>#OpenstellingRijtijdkaarten#</td></tr><tr><td>Afsluiten rijtijdkaarten:</td><td>#AfsluitenRijtijdkaarten#</td></tr></table>';
var tooltipHtmlTemplateAfgelast = '<table><tr><td>Titel:</td><td>#Titel#</td></tr><tr><td>Datum:</td><td>#Datum#</td></tr><tr><td>Organisatie:</td><td>#Vereniging#</td></tr><tr><td>Locatie:</td><td>#LocatieOmschrijving#</td></tr><tr><td>&nbsp;</td><td>#LocatieAdres#</td></tr><tr><td>&nbsp;</td><td>#LocatiePlaats#</td></tr><tr><td>Verantwoordelijke:</td><td>#Verantwoordelijke#</td></tr><tr><td>Verantw. Tel.:</td><td>#VerantwoordelijkeTelefoon#</td></tr><tr><td style=height:10px;></td><td></td></tr><tr><td class=labelboldred colspan=2>Organisatie is afgelast</td></tr><tr><td class=lb>Reden:</td><td>#RedenAfgeschaft#</td></tr></table>';

function orgNfoTip(titel, datum, vereniging, locatieOmschrijving, locatieAdres, locatiePlaats, verantwoordelijke, verantwoordelijkeTelefoon, afsluitingVoorinschrijvingen, openstellingInschrijvingen, afsluitingInschrijvingen, openstellingRijtijdkaarten, afsluitenRijtijdkaarten, afgelast, redenAfgelast)
{
    var tooltipHtml;
    
    if (afgelast)
        tooltipHtml = tooltipHtmlTemplateAfgelast;
    else
        tooltipHtml = tooltipHtmlTemplate;
    
    tooltipHtml = tooltipHtml.replace(/#Titel#/,titel);
    tooltipHtml = tooltipHtml.replace(/#Datum#/,datum);
    tooltipHtml = tooltipHtml.replace(/#Vereniging#/,vereniging);
    tooltipHtml = tooltipHtml.replace(/#LocatieOmschrijving#/,locatieOmschrijving);
    tooltipHtml = tooltipHtml.replace(/#LocatieAdres#/,locatieAdres);
    tooltipHtml = tooltipHtml.replace(/#LocatiePlaats#/,locatiePlaats);
    tooltipHtml = tooltipHtml.replace(/#Verantwoordelijke#/,verantwoordelijke);
    tooltipHtml = tooltipHtml.replace(/#VerantwoordelijkeTelefoon#/,verantwoordelijkeTelefoon);
    tooltipHtml = tooltipHtml.replace(/#AfsluitingVoorinschrijvingen#/,afsluitingVoorinschrijvingen);
    tooltipHtml = tooltipHtml.replace(/#OpenstellingInschrijvingen#/,openstellingInschrijvingen);
    tooltipHtml = tooltipHtml.replace(/#AfsluitingInschrijvingen#/,afsluitingInschrijvingen);
    tooltipHtml = tooltipHtml.replace(/#OpenstellingRijtijdkaarten#/,openstellingRijtijdkaarten);
    tooltipHtml = tooltipHtml.replace(/#AfsluitenRijtijdkaarten#/,afsluitenRijtijdkaarten);
    tooltipHtml = tooltipHtml.replace(/#RedenAfgelast#/,redenAfgelast);
    
    doTooltip(event, tooltipHtml);
}

