var EW_dateSep="-"; // default date separator

function toggleDiv(ID)
	{

	var Div;
	var Current;
	var ImgID;

	var Div = document.getElementById(ID);
	Current = Div.style.display;
	ImgID=ID+"_img";
	if (Current == "none")
		{
		document.getElementById(ImgID).src="images/hideblock.gif";
		Div.style.display = "block";
		var S=document.getElementById("fSearchMore");
		S.value="block";
		}
	else
		{
		document.getElementById(ImgID).src="images/showblock.gif";
		Div.style.display = "none";
		var S=document.getElementById("fSearchMore");
		S.value="none";
		}
	}

function Help(ID)
	{
	alert(ID);
	}

	
// this function is need to work around 
  // a bug in IE related to element attributes
function hasClass(obj) {
  
  var result = false;
  
  if (obj.getAttributeNode("class") != null){
    result = obj.getAttributeNode("class").value;}
  return result;
  }   
 
function hasID(obj) {
	
	var result=false;
	
	if (obj.getAttributeNode("id") != null)
		{
		result=true;
		}
	return result;
	}
	
function TableEvenOdd(id) {

	var Even = false;    
  var EvenColor = arguments[1] ? arguments[1] : "#fff";
  var OddColor = arguments[2] ? arguments[2] : "#eee";
	var RulerColor = arguments[3] ? arguments[3] : "";
  var table = document.getElementById(id);

  var strlen=0;
 	if (document.getElementById && document.createTextNode)
  	{
  	strlen=RulerColor.length;
   	var tables=document.getElementsByTagName('table');
   	if (tables!=null)
   		{
		   	for (var i=0;i<tables.length;i++)
		   		{
		    	if(tables[i].className=='EOTable')
		    		{
				  	var tbodies = tables[i].getElementsByTagName("tbody");
				  	for (var h = 0; h < tbodies.length; h++) 
				  		{
				  	  var trs = tbodies[h].getElementsByTagName("tr");
				  	  for (var g = 0; g < trs.length; g++)
				  	  	{
								if (!hasClass(trs[g]))
									{	
						     	trs[g].className=Even ? 'Even' : 'Odd';
							    }
						      Even =  ! Even;
						    }
						  }
						  if (strlen>0 && tables[i].id=='ruled')
				  			{
				  			var trs=tables[i].getElementsByTagName('input');
				  			for(var j=0;j<trs.length;j++)
				  				{
				  				if (trs[j].name=="RowCheckBox" || trs[j].name=="HeaderCheckBox")
				  					{
				  					trs[j].onmouseover=function(){CheckMouseOver(this)};
				  					}
				  				}
				     		var trs=tables[i].getElementsByTagName('tr');
				     		for(var j=0;j<trs.length;j++)
				     			{
				          if(trs[j].parentNode.nodeName=='TBODY'&& trs[j].parentNode.nodeName!='TFOOT')
				       			{
				       			if (trs[j].id!="")
				       				{
						 		 			trs[j].onmouseover=function(){prevClassName=this.style.backgroundColor;this.style.backgroundColor=RulerColor;this.style.cursor='pointer';return false};
					       			trs[j].onmouseout=function(){this.style.backgroundColor=prevClassName;this.style.cursor='default';return false};
					       			trs[j].onclick=function(){RowSelected(this.id)};
				       				}
							    	}
				    			}
				    		}
				  	  }
				  	}
   			}
		  var li=document.getElementById('shop_thumb');
		  if (li!=null)
		  	{
			  var lis=li.getElementsByTagName('li');
			  for (var i=0;i<lis.length;i++)
			  	{
			  	if (lis[i].id!="")
			  		{
			  		lis[i].onclick=function(){RowSelected(this.id)};	
			  		}
			  	}
		  	}
		  }		    
  }


 function getRule(ruleName){
 // due to the evil styleSheets[n].rules[n] collection
 // we need to reference styles in external or <style>
 // sheets with this function
 //
 // it returns an array of rule objects - typically
 // we'll be working with var my rules = GetRule('myclass')
 // rules[0]
 // to access the styles e.g. rules[0].style.color etc
 //
 // if there are identically names rules they'll be the
 // [1] [2] etc array in the order they're declared

  var styleSheet=null;
  var Rules=new Array();
  var styleCount=0;
  for (var ssIndex=0;
    ssIndex<document.styleSheets.length;
    ssIndex++){
   styleSheet=document.styleSheets[ssIndex];
   for (var rIndex=0;
     rIndex<styleSheet.rules.length;
     rIndex++){
    rule=styleSheet.rules[rIndex]
    if ((rule.selectorText=="."+ruleName)||(rule.selectorText==ruleName)){
     Rules[styleCount]=rule
     styleCount++;
     }
    }
   }
  return Rules;
 }

function changeRule(className, styleProperty, styleValue) {

  var myRule = getRule(className);

  // if you have more than one class called className then the second
  // one will be className[1], and so on
  //myRule[0].style(styleProperty) = styleValue;
  myRule[0].style[styleProperty] = styleValue;

   }
   
function getRuleValue(className, styleProperty) {

  var myRule = getRule(className);

  // if you have more than one class called className then the second
  // one will be className[1], and so on
  //myRule[0].style(styleProperty) = styleValue;
 	return myRule[0].style[styleProperty];
   }
function CheckMouseOver(kthis)
	{
	var tr=kthis.parentNode.parentNode;
	tr.onclick="";
	ID=tr.id;
	kthis.onmouseout=function(){CheckMouseOut(ID)}
	
	}
function CheckMouseOut(ID)
	{
	var tr=document.getElementById(ID);
	if (tr!=undefined)
		{
		tr.onclick=function(){RowSelected(ID)};	
		}
	}  

function CheckSelected(Message)
	{

	var Selected="";
	var ID="";
	var Table=document.getElementById("ruled");
	var trs=Table.getElementsByTagName('input');
	for(var i=0;i<trs.length;i++)
		{
		if (trs[i].name=="RowCheckBox")
			{
			if (trs[i].checked==true)	
				{	
				var ID=trs[i].parentNode.parentNode.id;
				if (ID.indexOf(";")>0)
					{
					ID=ID.substring(0,ID.indexOf(";"));
					}
				if (ID!="")
					{
					Selected+=ID+",";
					}
				}
			}
		}
	if (Selected.length==0)
		{
		alert(Message);
		}
	return Selected;	
		
	}

function CheckAll(kthis)
	{
	
	var Checked=kthis.checked;
  var tables=document.getElementsByTagName('table');
  for (var i=0;i<tables.length;i++)
  	{
		if (tables[i].id=='ruled')
			{
			var trs=tables[i].getElementsByTagName('input');
		  for(var j=0;j<trs.length;j++)
		  	{
		  	if (trs[j].name!="HeadCheckbox")
		  		{
		  		trs[j].checked=Checked;
		  		}
		  	}
			}
  	}	
	}
	
function GoToPage(Location)
	{
	var Page=document.getElementById('QToPage').value;
	window.location=Location+'QPage='+Page;
	}
function CheckField(field_obj,ID) {
		
	var IsValid=true;
	var Mask="";
	
	if (ID)
		{
		field_obj=document.getElementById(ID);
		}
	if (field_obj.type=="checkbox")
		IsValid=true;
	else if (field_obj.src.substring(0,3)=='req' && field_obj.value.length == 0)
		{	
		field_obj.style.backgroundColor='rgb(255,200,200)';
		field_obj.title='U moet dit veld invullen';
		IsValid=false;
		}
	else
		{
		Mask=field_obj.src;
		if (Mask.substring(0,3)=="req")
			{
			Mask=Mask.substring(3);
			}
		if (Mask=="City")
			{
			field_obj.value=field_obj.value.toUpperCase();
			}
		if (Mask=="EMail")
			{
			IsValid=CheckEMail(field_obj.value);
			if (IsValid)
				{
				field_obj.style.backgroundColor='rgb(255,255,255)';	
				field_obj.title='';
				}
			else
				{
				field_obj.style.backgroundColor='rgb(255,200,200)';
				field_obj.title='U moet een correct e-mail adres invoeren';
				}
			}
		else if (Mask=="ZipCode")
 			{
 			IsValid=CheckZipCode(field_obj.value) 	
			if (IsValid)
				{
				field_obj.style.backgroundColor='rgb(255,255,255)';	
				field_obj.title='';
				}
			else
				{
				field_obj.style.backgroundColor='rgb(255,200,200)';
				field_obj.title='U moet een correcte postcode invoeren';
				}	 
			field_obj.value=field_obj.value.toUpperCase();					
 			}
 		else if (Mask=="BankAccount")
 			{
 			IsValid=CheckBankAccount(field_obj.value) 	
			if (IsValid)
				{
				field_obj.style.backgroundColor='rgb(255,255,255)';	
				field_obj.title='';
				}
			else
				{
				field_obj.style.backgroundColor='rgb(255,200,200)';
				field_obj.title='U moet een correct rekeningnummer invoeren.';
				}	 					
 			}				
		else
			{
			field_obj.style.backgroundColor='rgb(255,255,255)';
			field_obj.title='';	
			}
		}
	return IsValid;
	}
	
function EW_isHTMLArea(input_object, object_type) {
	return (object_type == "TEXTAREA" && EW_HTMLArea && input_object.style && input_object.style.display && input_object.style.display == "none");
}

function EW_onError(form_object, input_object, object_type, error_message) {
	alert(error_message);
	if (object_type == "RADIO" || object_type == "CHECKBOX") {
		if (input_object[0])
			input_object[0].focus();
		else
			input_object.focus();
	}	else if (!EW_isHTMLArea(input_object, object_type)) {
		input_object.focus();
	}
	if (object_type == "TEXT" || object_type == "PASSWORD" || object_type == "TEXTAREA" || object_type == "FILE") {
		if (!EW_isHTMLArea(input_object, object_type))
			input_object.select();
	}
	return false;
}

function HasValue(obj, obj_type) {
	if (obj_type == "TEXT" || obj_type == "PASSWORD" || obj_type == "TEXTAREA" || obj_type == "FILE")	{
		if (obj.value.length == 0)
			return false;
		else
			return true;
	}	else if (obj_type == "SELECT") {
		if (obj.type != "select-multiple" && obj.selectedIndex == 0)
			return false;
		else if (obj.type == "select-multiple" && obj.selectedIndex == -1)
			return false;
		else
			return true;
	}	else if (obj_type == "RADIO" || obj_type == "CHECKBOX")	{
		if (obj[0]) {
			for (i=0; i < obj.length; i++) {
				if (obj[i].checked)
					return true;
			}
		} else {
			return (obj.checked);
		}
		return false;
	}
}

// Date (dd/mm/yyyy)
function CheckDate(object_value) {
	if (object_value.length == 0)
	  return true;

	isplit = object_value.indexOf(EW_dateSep);
	
	if (isplit == -1 || isplit == object_value.length)
		return false;

	sDay = object_value.substring(0, isplit);

	monthSplit = isplit + 1;

	isplit = object_value.indexOf(EW_dateSep, monthSplit);

	if (isplit == -1 ||  (isplit + 1 )  == object_value.length)
		return false;

	sMonth = object_value.substring((sDay.length + 1), isplit);

	isep = object_value.indexOf(' ', isplit + 1);
	if (isep == -1) {
		sYear = object_value.substring(isplit + 1);
	} else {
		sYear = object_value.substring(isplit + 1, isep);
		sTime = object_value.substring(isep + 1);
		if (!CheckTime(sTime))
			return false;
	}

	if (!CheckInteger(sMonth))
		return false;
	else if (!CheckRange(sMonth, 1, 12))
		return false;
	else if (!CheckInteger(sYear))
		return false;
	else if (!CheckRange(sYear, 0, null))
		return false;
	else if (!CheckInteger(sDay))
		return false;
	else if (!CheckDay(sYear, sMonth, sDay))
		return false;
	else
		return true;
}

function CheckDay(checkYear, checkMonth, checkDay) {
	maxDay = 31;

	if (checkMonth == 4 || checkMonth == 6 ||	checkMonth == 9 || checkMonth == 11) {
		maxDay = 30;
	} else if (checkMonth == 2)	{
		if (checkYear % 4 > 0)
			maxDay =28;
		else if (checkYear % 100 == 0 && checkYear % 400 > 0)
			maxDay = 28;
		else
			maxDay = 29;
	}

	return CheckRange(checkDay, 1, maxDay);
}

function CheckInteger(object_value) {
	if (object_value.length == 0)
		return true;

	var decimal_format = ".";
	var check_char;

	check_char = object_value.indexOf(decimal_format);
	if (check_char < 1)
		return CheckNumber(object_value);
	else
		return false;
}

function NumberRange(object_value, min_value, max_value) {
	if (min_value != null) {
		if (object_value < min_value)
			return false;
	}

	if (max_value != null) {
		if (object_value > max_value)
			return false;
	}

	return true;
}

function CheckNumber(object_value) {
	if (object_value.length == 0)
		return true;

	var start_format = " .+-0123456789";
	var number_format = " .0123456789";
	var check_char;
	var decimal = false;
	var trailing_blank = false;
	var digits = false;

	check_char = start_format.indexOf(object_value.charAt(0));
	if (check_char == 1)
		decimal = true;
	else if (check_char < 1)
		return false;

	for (var i = 1; i < object_value.length; i++)	{
		check_char = number_format.indexOf(object_value.charAt(i))
		if (check_char < 0) {
			return false;
		} else if (check_char == 1)	{
			if (decimal)
				return false;
			else
				decimal = true;
		} else if (check_char == 0) {
			if (decimal || digits)
			trailing_blank = true;
		}	else if (trailing_blank) {
			return false;
		} else {
			digits = true;
		}
	}

	return true;
}

function CheckRange(object_value, min_value, max_value) {
	if (object_value.length == 0)
		return true;

	if (!CheckNumber(object_value))
		return false;
	else
		return (NumberRange((eval(object_value)), min_value, max_value));

	return true;
}

function CheckTime(object_value) {
	if (object_value.length == 0)
		return true;

	isplit = object_value.indexOf(':');

	if (isplit == -1 || isplit == object_value.length)
		return false;

	sHour = object_value.substring(0, isplit);
	iminute = object_value.indexOf(':', isplit + 1);

	if (iminute == -1 || iminute == object_value.length)
		sMin = object_value.substring((sHour.length + 1));
	else
		sMin = object_value.substring((sHour.length + 1), iminute);

	if (!CheckInteger(sHour))
		return false;
	else if (!CheckRange(sHour, 0, 23))
		return false;

	if (!CheckInteger(sMin))
		return false;
	else if (!CheckRange(sMin, 0, 59))
		return false;

	if (iminute != -1) {
		sSec = object_value.substring(iminute + 1);
		if (!CheckInteger(sSec))
			return false;
		else if (!CheckRange(sSec, 0, 59))
			return false;
	}

	return true;
}

function CheckBankAccount(Value)
	{
	
	//Value.value=Value.replace(".","");
	var CValue=0;
	var vLength=0;
	if (Value.length<9)
		{
		return true;
		}
	else
		{
		vLength=Value.length;
		LeadingZeros=""
		for (i=vLength;i<10;i++)
			{
			LeadingZeros+="0";
			}	
		Value=LeadingZeros+""+Value;
		vLength=Value.length;
		for (i=1;i<vLength+1;i++)
			{
			CValue=CValue+(parseInt(Value.charAt(i-1))*(vLength-i+1));
			}
		var V1=parseInt(CValue/11);
		var V2=CValue/11;
		return (V1==V2);
		}
	}
	
function CheckPhone(object_value) {
	if (object_value.length == 0)
		return true;

	if (object_value.length != 12)
		return false;

	if (!CheckNumber(object_value.substring(0,3)))
		return false;
	else if (!NumberRange((eval(object_value.substring(0,3))), 100, 1000))
		return false;

	if (object_value.charAt(3) != "-" && object_value.charAt(3) != " ")
		return false

	if (!CheckNumber(object_value.substring(4,7)))
		return false;
	else if (!NumberRange((eval(object_value.substring(4,7))), 100, 1000))
		return false;

	if (object_value.charAt(7) != "-" && object_value.charAt(7) != " ")
		return false;

	if (object_value.charAt(8) == "-" || object_value.charAt(8) == "+")
		return false;
	else
		return (CheckInteger(object_value.substring(8,12)));
}


function CheckZipCode(object_value) {

	var Char="";
	
	if (object_value.length != 6 && object_value.length != 7)
		return false;

	else if (object_value.charAt(4) == " " && object_value.length != 7)
		return false;
	else if (object_value.charAt(4) != " " && object_value.length != 6)
		return false;
	else if (!CheckInteger(object_value.substring(0,4)))
		return false;
	else
		if (object_value.length == 6)
			Char=object_value.substring(4,6)
		else 
			Char=object_value.substring(5,7)
		Char=Char.toUpperCase();
		if ((Char.charAt(0)<'A' || Char.charAt(0)>'Z') || (Char.charAt(1)<'A' || Char.charAt(1)>'Z'))
			return false;
		else
			return true;
}

function CheckCreditcard(object_value) {
	var white_space = " -";
	var creditcard_string = "";
	var check_char;

	if (object_value.length == 0)
		return true;

	for (var i = 0; i < object_value.length; i++) {
		check_char = white_space.indexOf(object_value.charAt(i));
		if (check_char < 0)
			creditcard_string += object_value.substring(i, (i + 1));
	}

	if (creditcard_string.length == 0)
		return false;

	if (creditcard_string.charAt(0) == "+")
		return false;

	if (!CheckInteger(creditcard_string))
		return false;

	var doubledigit = creditcard_string.length % 2 == 1 ? false : true;
	var checkdigit = 0;
	var tempdigit;

	for (var i = 0; i < creditcard_string.length; i++) {
		tempdigit = eval(creditcard_string.charAt(i));
		if (doubledigit) {
			tempdigit *= 2;
			checkdigit += (tempdigit % 10);
			if ((tempdigit / 10) >= 1.0)
				checkdigit++;
			doubledigit = false;
		}	else {
			checkdigit += tempdigit;
			doubledigit = true;
		}
	}

	return (checkdigit % 10) == 0 ? true : false;
}


function CheckEMail(object_value) {
	
	if (object_value.length == 0)
		return false;

	if (!(object_value.indexOf("@") > -1 && object_value.indexOf(".") > -1))
		return false;

	return true;
}

// GUID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
function CheckGUID(object_value)	{
	if (object_value.length == 0)
		return true;
	if (object_value.length != 38)
		return false;
	if (object_value.charAt(0)!="{")
		return false;
	if (object_value.charAt(37)!="}")
		return false;

	var hex_format = "0123456789abcdefABCDEF";
	var check_char;

	for (var i = 1; i < 37; i++) {
		if ((i==9) || (i==14) || (i==19) || (i==24)) {
			if (object_value.charAt(i)!="-")
				return false;
		} else {
			check_char = hex_format.indexOf(object_value.charAt(i));
			if (check_char < 0)
				return false;
		}
	}
	return true;
}

function Trim(TRIM_VALUE)
	{
	if(TRIM_VALUE.length < 1)
		{
		return"";
		}
		TRIM_VALUE = RTrim(TRIM_VALUE);
		TRIM_VALUE = LTrim(TRIM_VALUE);
		if(TRIM_VALUE=="")
			{
			return "";
			}
		else
			{
			return TRIM_VALUE;
			}
	}

function RTrim(VALUE){
	
	var w_space = String.fromCharCode(32);
	var v_length = VALUE.length;
	var strTemp = "";
	if(v_length < 0)
		{
		return"";
		}
	var iTemp = v_length -1;
	while(iTemp > -1)
		{
		if(VALUE.charAt(iTemp) == w_space)
			{
			}
		else
			{
			strTemp = VALUE.substring(0,iTemp +1);
			break;
			}
		iTemp = iTemp-1;
		}
	return strTemp;

	}

function LTrim(VALUE)
	{
	var w_space = String.fromCharCode(32);
	if(v_length < 1)
		{
		return"";
		}
	var v_length = VALUE.length;
	var strTemp = "";
	var iTemp = 0;
	while(iTemp < v_length)
		{
		if(VALUE.charAt(iTemp) == w_space)
			{
			}
		else
			{
			strTemp = VALUE.substring(iTemp,v_length);
			break;
			}
		iTemp = iTemp + 1;
		}
	return strTemp;
} 

function popup(page,caption,w,h) 
	{
	var winl = (screen.width-w)/2;
	var wint = (screen.height-h)/2;
	if (winl < 0) winl = 0;
	if (wint < 0) wint = 0;
	
	windowprops = "height="+h+",width="+w+",top="+ wint +",left="+ winl +",location=no,"
	+ "scrollbars=yes,menubars=no,toolbars=no,resizable=no,status=yes";
	window.open(page, caption, windowprops);
	}

