


//BLINKING
var blink_speed=500;
function Blink(layerName,i,varName){


 if(i%2==0)
 {
	document.getElementById(layerName).style.visibility='visible';
 }
 else
 {
	document.getElementById(layerName).style.visibility='hidden';
 }
 
 if(i<1)
 {
 i++;
 } 
 else
 {
 i--
 }
 //eval(varName=setTimeout("Blink('"+layerName+"'," + i + ")",blink_speed)
 if (varName=='undefined')
 {
	
	setTimeout("Blink('"+layerName+"'," + i + ")",blink_speed);
 } else {
	eval(varName + '=' + setTimeout("Blink('"+layerName+"'," + i + ",'" + varName + "')",blink_speed));
 }
 
}


//  End -->



function CheckNumeric(obj,errordescription,allowzero)
{
	
	var value=document.getElementById(obj).value;
	var s;
	
	s=new String();
	s=value;
	var i;
	
	//CHECK LEGE STRING
	s=s.replace(' ','');
		
	if (isNaN(parseInt(s))==true)
	{
		alert(errordescription);
		return false;
	}
	else
	{
		i=parseInt(s);
		if (!(allowzero) && (i<=0)) {i=1;}
		document.getElementById(obj).value=i;
		return true;
	}
}

function CheckBestelHoeveelheid(obj, obj2, errordescription)
{
	var valid = true;


	//minimaal het minumum bestelaantal
	var value=document.getElementById(obj).value;
	var minimum=document.getElementById(obj2).value;

	if ( +value < +minimum ) {
		valid = false;
		alert(errordescription.replace(/%1/,minimum));
	}
	
	return valid;
}

function CheckPakketSize(obj, obj2, errordescription)
{
	var valid = true;


	//bestellen in veelvoud van pakket size
	var value=document.getElementById(obj).value;
	var pakket=document.getElementById(obj2).value;

	if (+pakket > 0) {
		if (+value % +pakket != 0) {
			valid = false;
			alert(errordescription.replace(/%1/,pakket));
		}
	}
	
	return valid;
}

function setTabIndex(objName,index)
{
	var obj=document.getElementById(objName)
	if (obj!=null)
	{
		obj.tabIndex=index;
		//if object exists raise tabindex
		return (index + 1);
	} else {
		//if object not exists do not raise tabindex;
		return index;
	}
}

function setFocus(objName)
{
	var obj=document.getElementById(objName)
	if (obj!=null)
	{
		obj.focus();
	}
}

function SearchArticles(e)
{	
	var searchText=document.getElementById('Search_txtSearch').value;
	
	//fires also on mouseclick
	if (e==null) { 
		if (searchText.length<2) {
			alert(CAP_ErrorLengteZoekTekst);
			return;
		}
		document.location='index.aspx?a=10&type=srch&searchText=' + searchText + '&artgrp=zoeken naar "' + searchText.replace('&', '%26') + '"';
		//document.location='index.aspx?a=10&type=srch&searchText=' + searchText + '&artgrp=zoeken naar "' + searchText.replace('&', '%26') + '"' + '&csid=' + csid;
		return;
	}
	
	//keycode 13=enter
	/*if (e.keyCode==13){
		if (searchText.length<2) {
			alert(CAP_ErrorLengteZoekTekst);
			return;
		}
		e.returnValue=false;
		e.cancel = true;
		document.location='index.aspx?a=10&type=srch&searchText=' + searchText + '&artgrp=zoeken naar "' + searchText.replace('&', '%26') + '"';
	}*/
}

function BeheerSearchArticles(e)
{	
	var searchText=document.getElementById('Search_txtSearch').value;
	
	//fires also on mouseclick
	if (e==null) { 
		if (searchText.length<2) {
			alert(CAP_ErrorLengteZoekTekst);
			return;
		}
		document.location='deelnemerindex.aspx?a=51&type=srch&searchText=' + searchText + '&artgrp=zoeken naar "' + searchText.replace('&', '%26') + '"';
		return;
	}
	
	//keycode 13=enter
	/*if (e.keyCode==13){
		if (searchText.length<2) {
			alert(CAP_ErrorLengteZoekTekst);
			return;
		}
		e.returnValue=false;
		e.cancel = true;
		document.location='index.aspx?a=10&type=srch&searchText=' + searchText + '&artgrp=zoeken naar "' + searchText.replace('&', '%26') + '"';
	}*/
}

//START DATUM CHECK FUNCTIES
function makeArray(n) {
//*** BUG: If I put this line in, I get two error messages:
//(1) Window.length can't be set by assignment
//(2) daysInMonth has no property indexed by 4
//If I leave it out, the code works fine.
//   this.length = n;
   for (var i = 1; i <= n; i++) {
      this[i] = 0
   } 
   return this
}

var reInteger =/\b\d+\b/
var reSignedInteger = /[-+]?\b\d+\b/

var daysInMonth = makeArray(12);
daysInMonth[1] = 31;
daysInMonth[2] = 29;   // must programmatically check this
daysInMonth[3] = 31;
daysInMonth[4] = 30;
daysInMonth[5] = 31;
daysInMonth[6] = 30;
daysInMonth[7] = 31;
daysInMonth[8] = 31;
daysInMonth[9] = 30;
daysInMonth[10] = 31;
daysInMonth[11] = 30;
daysInMonth[12] = 31;



function checkDate (yearField, monthField, dayField, OKtoOmitDay)
{   // Next line is needed on NN3 to avoid "undefined is not a number" error
    // in equality comparison below.
    if (checkDate.arguments.length == 3) OKtoOmitDay = false;
    
     
    if (!isYear(yearField.value)) return false;
    if (!isMonth(monthField.value)) return false;
    
    if ( (OKtoOmitDay == true) && isEmpty(dayField.value) ) return true;
    
    
    else if (!isDay(dayField.value,false)) 
    {
       
       return false;
    }
    if (isDate (yearField.value, monthField.value, dayField.value))
       return true;
    //alert (labelString + ' bevat geen geldige datum ');
    
    return false;
}

function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}

function isMonth (s)
{   if (isEmpty(s)) 
       if (isMonth.arguments.length == 1) return false;
       else return (isMonth.arguments[1] == true);
    return isIntegerInRange (s, 1, 12);
}

function isDay (s)
{   
	
	if (isEmpty(s)) 
	
       
       if (isDay.arguments.length == 1) return false;
       else return (isDay.arguments[1] == true);   
   
    return isIntegerInRange (s, 1, 31);
}

function isYear (s)
{   if (isEmpty(s)) 
       if (isYear.arguments.length == 1) return false;
       else return (isYear.arguments[1] == true);
    if (!isNonnegativeInteger(s)) return false;
    return ((s.length == 2) || (s.length == 4));
}

function isIntegerInRange (s, a, b)
{   if (isEmpty(s)) 
       if (isIntegerInRange.arguments.length == 1) return false;
       else return (isIntegerInRange.arguments[1] == true);

    // Catch non-integer strings to avoid creating a NaN below,
    // which isn't available on JavaScript 1.0 for Windows.
    if (!isInteger(s, false)) return false;

    // Now, explicitly change the type to integer via parseInt
    // so that the comparison code below will work both on 
    // JavaScript 1.2 (which typechecks in equality comparisons)
    // and JavaScript 1.1 and before (which doesn't).
    var num = parseInt (s);
    return ((num >= a) && (num <= b));
}



function isNonnegativeInteger (s)
{   var secondArg = false;

    if (isNonnegativeInteger.arguments.length > 1)
        secondArg = isNonnegativeInteger.arguments[1];

    // The next line is a bit byzantine.  What it means is:
    // a) s must be a signed integer, AND
    // b) one of the following must be true:
    //    i)  s is empty and we are supposed to return true for
    //        empty strings
    //    ii) this is a number >= 0

    return (isSignedInteger(s, secondArg)
         && ( (isEmpty(s) && secondArg)  || (parseInt (s) >= 0) ) );
}

function isSignedInteger (s)

{   if (isEmpty(s)) 
       if (isSignedInteger.arguments.length == 1) return false;
       else return (isSignedInteger.arguments[1] == true);

    
    else {
       return reSignedInteger.test(s)
    }
}


function isDate (year, month, day)
{   // catch invalid years (not 2- or 4-digit) and invalid months and days.
    if (! (isYear(year, false) && isMonth(month, false) && isDay(day, false))) return false;

    // Explicitly change type to integer to make code work in both
    // JavaScript 1.1 and JavaScript 1.2.
    var intYear = parseInt(year);
    var intMonth = parseInt(month);
    var intDay = parseInt(day);

    // catch invalid days, except for February
    if (intDay > daysInMonth[intMonth]) return false; 

    if ((intMonth == 2) && (intDay > daysInFebruary(intYear))) return false;

    return true;
}

function daysInFebruary (year)
{   // February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (  ((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0) ) ) ? 29 : 28 );
}

function isInteger (s)

{   var i;

    if (isEmpty(s)) 
       if (isInteger.arguments.length == 1) return false;
       else return (isInteger.arguments[1] == true);

    return reInteger.test(s)
}

//EIND DATUM CHECK FUNCTIES

function getTopCell(objid)
{
	 //var cElement = document.all.myCell
	var cElement=document.getElementById(objid);


	// Set flag for whether calculations should use
	// client- or offset- property measures. Use
	// client- for IE5/Mac and IE4/Windows; otherwise
	// use offset- properties. An ugly, but necessary
	// workaround.
	var useClient = (cElement.offsetTop == 0) ? 
		((cElement.offsetParent.tagName.toUpperCase() == "TR") ? false : true) : false
	if (useClient) {
		var x = cElement.clientLeft
		var y = cElement.clientTop
	} else {
		var x = cElement.offsetLeft
		var y = cElement.offsetTop
	}
	///var pElement = document.all.myCell.offsetParent
	var pElement=document.getElementById(objid).offsetParent
	while (pElement != document.body) {
		if (useClient) {
			x += pElement.clientLeft
			y += pElement.clientTop
		} else {
			x += pElement.offsetLeft
			y += pElement.offsetTop
		}
		pElement = pElement.offsetParent
	}
	
	return y
}

function getLeftCell(objid)
{
	 //var cElement = document.all.myCell
	var cElement=document.getElementById(objid)
	
	
	// Set flag for whether calculations should use
	// client- or offset- property measures. Use
	// client- for IE5/Mac and IE4/Windows; otherwise
	// use offset- properties. An ugly, but necessary
	// workaround.
	var useClient = (cElement.offsetTop == 0) ? 
		((cElement.offsetParent.tagName.toUpperCase() == "TR") ? false : true) : false
	if (useClient) {
		var x = cElement.clientLeft
		var y = cElement.clientTop
		
		
	} else {
		var x = cElement.offsetLeft
		var y = cElement.offsetTop
		
	}
	///var pElement = document.all.myCell.offsetParent
	var pElement=document.getElementById(objid).offsetParent
	while (pElement != document.body) {
		if (useClient) {
			x += pElement.clientLeft
			y += pElement.clientTop
			
		} else {
			x += pElement.offsetLeft
			y += pElement.offsetTop
		}
		pElement = pElement.offsetParent
	}
	
	return x
}

function checkKenmerken(parent) {

	
	
	
	var disabled=false;	

	if (parent) {
		var btnBestel=window.parent.window.document.getElementById('Contents_btnValidate');
	} else {
		var btnBestel=document.getElementById('Contents_btnValidate');
	}
	if (btnBestel==null)
	{
		if (parent) {
			btnBestel=window.parent.window.document.getElementById('btnBestel2');
		} else {
			btnBestel=document.getElementById('btnBestel2');
		}
	}

	if (parent) {
		var chkLeft=window.parent.window.document.getElementById('Contents_chkLeftEye');	
		var chkRight=window.parent.window.document.getElementById('Contents_chkRightEye');
	} else {
		var chkLeft=document.getElementById('Contents_chkLeftEye');
		var chkRight=document.getElementById('Contents_chkRightEye');
	}
	
	if ( chkLeft.checked==false && chkRight.checked==false ) {
		disabled = true;
	} else {
		if ( chkLeft.checked==true) {
			disabled = checkKenmerkenEYE('L', parent);	
		}
	
		if ( !disabled && chkRight.checked==true) {
			disabled = checkKenmerkenEYE('R', parent);
		}
	}
	
	if (btnBestel!=null) {
		//alert('disabled = ' + disabled);
		btnBestel.disabled=disabled;
	}	
}

function checkKenmerkenEYE(eye, parent)
{
	//Enable de bestelknop wanneer voor alle beschikbare kenmerken een waarde is geselecteerd
	//Disable de bestelknop wanneer voor een van de beschikbare kenmerken geen waarde is geselecteerd
	//Alleen voor actieve kenmerken, deze zitten in een tr met display style <> none
	//Note that this is might be called from an innerframe thus the elements are then in the parent page hence the
	//use of window.parent.window.document.getElementById instead of document.getElementById

	eye = '_' + eye;

	var disabled=false;	
//	if (parent) {
//		var btnBestel=window.parent.window.document.getElementById('Contents_btnValidate');
//	} else {
//		var btnBestel=document.getElementById('Contents_btnValidate');
//	}
//	if (btnBestel==null)
//	{
//		if (parent) {
//			btnBestel=window.parent.window.document.getElementById('btnBestel2');
//		} else {
//			btnBestel=document.getElementById('btnBestel2');
//		}
//	}

	for (i=1;i<=7;i++) {
		if(parent) {
			trow=window.parent.window.document.getElementById('Contents_tdKenmerkValue' + i + eye); 
		} else {
			trow=document.getElementById('Contents_tdKenmerkValue' + i + eye);
		}

		if (trow != null) {
			if ( trow.style.display.toString() != 'none' ) {
				if (parent) {
					sel=window.parent.window.document.getElementById('Contents_drpKenmerk' + i + eye);
				} else {
					sel=document.getElementById('Contents_drpKenmerk' + i + eye);
				}
				if (sel.selectedIndex != -1) {
					opt=sel.options[sel.selectedIndex];
					v=opt.value;
					t=opt.text;
					//alert('Contents_drpKenmerk' + i + '[' + sel.selectedIndex + '] = ' + v + ', ' + t);
					if (t == '') {
						disabled=true;
					}
				} else {
					disabled=true;
				}
			}
		}
	}

	return disabled;	
//	if (btnBestel!=null) {
//		//alert('disabled = ' + disabled);
//		btnBestel.disabled=disabled;
//	}
}

function checkSterkte(ddobj)
{
	
	//drpKenmerk1_R Me.drpKenmerk1
	//alert(ddobj.id);
	
	var sel=document.getElementById(ddobj.id);
	var opt=sel.options[sel.selectedIndex];
	var v = new String()
	v=opt.value;
	
	var sel2;
	var opt2;
	var v2=new String()
	
	var chkEye;
	
	var btnBestel=document.getElementById('Contents_btnValidate');
	if (btnBestel==null)
	{
		btnBestel=document.getElementById('btnBestel2');
	}
	
	
	if (ddobj.id=='Contents_drpKenmerk1_R')
	{
		chkEye=document.getElementById('Contents_chkRightEye');
		sel2=document.getElementById('Contents_drpKenmerk1_L');
		opt2=sel2.options[sel2.selectedIndex];
		v2=opt2.value
		if (v=='-1' && v2=='-1')
		{
			chkEye.checked=false;
			btnBestel.disabled=true;
		}
		else if (v=='-1' && v2!='-1')
		{
			chkEye.checked=false;
			btnBestel.disabled=false;
		}
		else if (v!='-1')
		{
			chkEye.checked=true;
			btnBestel.disabled=false;
		}
		
			
	}
	else if (ddobj.id=='Contents_drpKenmerk1_L')
	{
		chkEye=document.getElementById('Contents_chkLeftEye');
		sel2=document.getElementById('Contents_drpKenmerk1_R');
		opt2=sel2.options[sel2.selectedIndex];
		v2=opt2.value
		if (v=='-1' && v2=='-1')
		{
			chkEye.checked=false;
			btnBestel.disabled=true;
		}
		else if (v=='-1' && v2!='-1')
		{
			chkEye.checked=false;
			btnBestel.disabled=false;
		}
		else if (v!='-1')
		{
			chkEye.checked=true;
			btnBestel.disabled=false;
		}
	
	}
	else if (ddobj.id=='drpKenmerk1')
	{
		// quickorder heeft geen rechts en links
		if (v=='-1')
		{
			btnBestel.disabled=true;
		}
		else
		{
			btnBestel.disabled=false;
		}
		
	}
	
	
}


