// call url as an external javascript
function CallUrl(url)
{
	var tag  = document.createElement("script");
	tag.type = "text/javascript";
	tag.src  = url;
	document.getElementsByTagName("head")[0].appendChild(tag);
	window.status = '';
	return true;
}

function fix_height(el, extra)
{
	if(!document.getElementById(el))
		return false; 
	
	if(isNaN(extra))
		extra = 0;
	
	var h  = document.getElementById(el).offsetHeight;

	var nh = Math.ceil((h+1)/5)*5 - 1;
	//alert(nh + extra);
	document.getElementById(el).style.height = nh + extra + 'px';
}

function fix_width(el)
{
	if(! document.getElementById(el))
		return false;
	
	var h  = document.getElementById(el).offsetWidth;
	var nh = Math.ceil((h+1)/5)*5 - 1;
	document.getElementById(el).style.width = nh + 'px';
}
	
function ShowElement(element_id)
{
	if(document.getElementById(element_id))
		document.getElementById(element_id).style.display = 'block';
}

function HideElement(element_id)
{
	if(document.getElementById(element_id))
		document.getElementById(element_id).style.display = 'none';
	
}

function MakeInvisible(element_id)
{
	if(document.getElementById(element_id))
		document.getElementById(element_id).style.visibility = 'hidden';
}

function MakeVisible(element_id)
{
	if(document.getElementById(element_id))
		document.getElementById(element_id).style.visibility = 'visible';
	
}



function GetElementsByClassName(class_name)
{
  var all_obj,ret_obj=new Array(),j=0,teststr;

  if(document.all)all_obj=document.all;
  else if(document.getElementsByTagName && !document.all)
    all_obj=document.getElementsByTagName("*");

  for(i=0;i<all_obj.length;i++)
  {
    if(all_obj[i].className.indexOf(class_name)!=-1)
    {
      teststr=","+all_obj[i].className.split(" ").join(",")+",";
      if(teststr.indexOf(","+class_name+",")!=-1)
      {
        ret_obj[j]=all_obj[i];
        j++;
      }
    }
  }
  return ret_obj;
}


function getElementsByClassName(node, c, tag) 
{
	var ret  = new Array();
	var j    = 0;
	var objs = node.getElementsByTagName(tag);
	
	for(i = 0;i < objs.length; i++)
	{
		if(objs[i].className == c)
		{
			ret[j] = objs[i];
			j++;
		}
	} 
	
	return ret;
} 


function OpenWindow(url, width, height)
{
	window.open(url, '', 'width=' + width + ',height=' + height);	
}


function DisableField(field_id)
{
	
	//disable the field (if it exists)
	if(document.getElementById(field_id))
	{
		document.getElementById(field_id).disabled = true;	
		if(document.getElementById(field_id).checked == true)
			document.getElementById(field_id).checked = false;
	}
	
	//disable the label (if it exists)
	if(document.getElementById(field_id + '_label'))
		document.getElementById(field_id + '_label').disabled = true; //className = 'disabled';	

}

function EnableField(field_id)
{
	
	//enable the field (if it exists)
	if(document.getElementById(field_id))
		document.getElementById(field_id).disabled = false;	
	
	//enable the label (if it exists)
	if(document.getElementById(field_id + '_label'))
		document.getElementById(field_id + '_label').disabled = false; //className = 'disabled';	
	
}

function CheckRadioBox(radiobox_id)
{
	//check whether it is a radiobox, if so; check it
	if(document.getElementById(radiobox_id).checked == true || document.getElementById(radiobox_id).checked == false)
		document.getElementById(radiobox_id).checked = true;
}


// *******************************************************************************************
//	MENU (layers)
// *******************************************************************************************

function MenuList() 
{
	if (document.all&&document.getElementById) 
	{
		navRoot = document.getElementById("nav");
		for (i = 0; i < navRoot.childNodes.length; i++) 
		{
			node = navRoot.childNodes[i];
			if (node.nodeName == "LI") 
			{
				node.onmouseover = function() 
				{
					this.className += " over";
				}
				node.onmouseout = function() 
				{
					this.className = this.className.replace(" over", "");
				}
			}
		}
	}
}

// *******************************************************************************************
//	TABLE (change class onmouseover table row)
// *******************************************************************************************
function setTableRowClass(theRow, className) {
	if (typeof(theRow.style) == 'undefined' || typeof(theRow.cells) == 'undefined') {
        return false;
    }

    var row_cells_cnt = theRow.cells.length;
    for (var c = 0; c < row_cells_cnt; c++) {
        theRow.cells[c].className = className;
    }

    return true;
}
// *******************************************************************************************
//	COOKIE
// *******************************************************************************************
function Get_Cookie(name) {
    var start = document.cookie.indexOf(name+"=");
    var len = start+name.length+1;
    if ((!start) && (name != document.cookie.substring(0,name.length))) return null;
    if (start == -1) return null;
    var end = document.cookie.indexOf(";",len);
    if (end == -1) end = document.cookie.length;
    return unescape(document.cookie.substring(len,end));
}

function Set_Cookie(name,value,expires,path,domain,secure) {
    document.cookie = name + "=" +escape(value) +
        ( (expires) ? ";expires=" + expires.toGMTString() : "") +
        ( (path) ? ";path=" + path : "") + 
        ( (domain) ? ";domain=" + domain : "") +
        ( (secure) ? ";secure" : "");
}
function CookieExpires() {
	var today	= new Date();
	var expires = new Date(today.getTime() + (56 * 86400000));
	
	return expires;
}
// *******************************************************************************************
//	FORMCHECKS (basic)
// *******************************************************************************************
function SetFFStyle(el, status) {
	if (status == 'Bad')
	{
		// Backup current classname in cookie
		if (el.className != 'FormCheckBad')
		{		
			var expires = CookieExpires();
			Set_Cookie("ContactClassName", el.className,expires);
		}

		// Change classname to bad
		el.className = 'FormCheckBad';
	}
	else
	{
		// Get classname from cookie	
		var ContactClassName = Get_Cookie("ContactClassName");

		if (ContactClassName != 'FormCheckBad' && ContactClassName != '')
		{
			// Restore classname from cookie
			el.className = ContactClassName;
		}
		else
		{
			// Restore to default class	
			el.className = 'FormCheckGood';
		}
	}
}

function CheckField(fieldname, message) {
	if(fieldname) {
		if (fieldname.value == "") {
			SetFFStyle(fieldname, 'Bad');
			message = '- '+message+'\n';
			return message;
		} else {
			SetFFStyle(fieldname, 'Good');
			return '';
		}
	} else {
		return '';
	}
}

function CheckCheckbox(fieldname, message) {
	if(fieldname) {
		if (fieldname.checked != true) {
			message = '- '+message+'\n';
			return message;
		} else {
			return '';
		}
	} else {
		return '';
	}
}

function CheckEmail(fieldname, message, lang) {
	if(fieldname) {
		if (fieldname.value == "") {
			SetFFStyle(fieldname, 'Bad');
			if(lang == 'EN')
				message = '- Email address\n';
			else
				message = '- Emailadres\n';
			return message;
		} else if (IsEmail(fieldname.value) == false) {
			SetFFStyle(fieldname, 'Bad');
			if(lang == 'EN')
				message = '- '+message+' is not a valid email address !\n';
			else
				message = '- '+message+' is geen geldig e-mailadres !\n';
			return message;
		} else {
			SetFFStyle(fieldname, 'Good');
			return '';
		}
	} else {
		return '';		
	}
}

function IsEmail(str) {
  // are regular expressions supported?
  var supported = 0;
  if (window.RegExp)
  {
    var tempStr = "a";
    var tempReg = new RegExp(tempStr);
    if (tempReg.test(tempStr)) supported = 1;
  }
  if (!supported) 
    return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
  var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
  var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$");
  return (!r1.test(str) && r2.test(str));
}

function CheckOnlyNumbers(input) {
    regex_only_numbers   = new RegExp('[^0-9]', 'g');
	return input.replace(regex_only_numbers, '');
}


