var thisObj;
var isMenuVisible=false;
var pageheight=0;
var style_rewrite=false;


/*IE css flickr issue*/
try {
  document.execCommand('BackgroundImageCache', false, true);
} catch(e) {}

function initauthpage(){
	document.getElementById("loginform").loginname.focus();
}

function talert(txt){
	alert(txt);
}


function loadBigPic(imgText,imgUrl,schema){
	var obj;
	var bigPicHtml="";


	titleobj = document.getElementById("midboxtitle");
	bigPicHtml = schema;
	titleobj.innerHTML =  bigPicHtml;

	bigPicHtml="";
	contentobj = document.getElementById("midboxintro");
	bigPicHtml = decodeBase64(imgText);
	//alert(bigPicHtml);
	contentobj.innerHTML = "";

	contentobj.innerHTML =  bigPicHtml;

	imgobj = document.getElementById("imgbox");
//	alert (imgobj.innerHTML);
	bigPicHtml="";
	bigPicHtml = "	<img style=\"padding-top: 15px;\" width=\"245px\"  src=\"" + imgUrl + "\" />";
//	bigPicHtml = " afbeelding ";
	imgobj.innerHTML =  bigPicHtml;

	//alert(contentobj.innerHTML);

}

function initpage() {
var i;
var node;
var navRoot;


	 if ( document.getElementById) {
	   navRoot = document.getElementById("toplist");

		for (i=0; i<navRoot.childNodes.length; i++) {
			node = navRoot.childNodes[i];
			if (node.nodeName=="LI") {
					node.onmouseover=function() { 	if (isMenuVisible==false) { this.className+=" over"; isMenuVisible=true;} }
					node.onmouseout=function() { 	if (isMenuVisible==true) { this.className=""; isMenuVisible=false; }  }
					node.onmouseout=function() { 	if (isMenuVisible==true) { this.str=this.className; this.className=this.str.replace('over',""); isMenuVisible=false; }  }
					
					//node.onmouseout= function ()  { thisObj=this; window.setTimeout("pullup(' + this + ')",50);  }
	      	}
	 	 }
	 }

 	var inputElements = document.getElementsByTagName('input');
	for (var i=0; i<inputElements.length; i++){
		if(inputElements[i].type == "submit"){
			inputElements[i].className =  inputElements[i].className + " submitbutton";
		}
		else if (inputElements[i].type == "checkbox"){
			inputElements[i].className =  inputElements[i].className + " checkbox";
		} else if (inputElements[i].type == "radio"){
			inputElements[i].className =  inputElements[i].className + " radio";
		} else if (inputElements[i].type == "text"){
			inputElements[i].className = inputElements[i].className + " textbox";
		}
	}


initLightbox();	// run initLightbox onLoad


}

function pullup(){
	if(isMenuVisible == false) {
		return;
	}else{
	 thisObj.className=thisObj.className.replace("over", "");
	 thisObj.className="";
	isMenuVisible=false;
	}
}

function keepliquid(){
	initpage();
	//alignFlower();
	initforms();
	fixCss();
}

function initforms(){
var thisObj;
var orgVal;

	objInputBoxes=document.getElementsByTagName("input");

	for (i=0; i<objInputBoxes.length; i++){
		if (objInputBoxes[i].type=="text"){
			thisObj=objInputBoxes[i];
			thisName=thisObj.name;
/*
			if (thisName == "klantnaam")  thisObj.value="";
			if (thisName == "klantplaats")  thisObj.value="";
			if (thisName == "klantemail")  thisObj.value="";
			if (thisName == "klantstraat")  thisObj.value="";
			if (thisName == "klanthuisnummer")  thisObj.value="";
			if (thisName == "klanttelefoonnummer")  thisObj.value="";
			if (thisName == "klanttelefoon")  thisObj.value="";
			if (thisName == "klantpostcode")  thisObj.value="";
			if (thisName == "klantbericht")  thisObj.value="";
*/
			//save current value of object
			orgVal=objInputBoxes[i].value;

			//add user events
			//clear box on mouse over
			objInputBoxes[i].onfocus=function () {
				orgVal=this.value;
				this.value='';
			}
			//reset value on mouseout
			objInputBoxes[i].onblur=function () {
				if (this.value==''){
					this.value=orgVal;
				}
			}
		}
	}

}

function checkform(inputlist){
var thisObj;
var orgVal;
var errmsg;
errmsg="";


	objInputBoxes=document.getElementsByTagName("input");
	objTextareas=document.getElementsByTagName("textarea");
	
	for (i=0; i<objInputBoxes.length; i++){
		if (objInputBoxes[i].type=="text"){
			thisObj=objInputBoxes[i];
			thisName=thisObj.name;
			if ( inputlist.indexOf(thisName) != -1 && thisName == "klantnaam" )  errmsg += islonger(thisName,thisObj.value,3);
			if ( inputlist.indexOf(thisName) != -1 && thisName == "klantplaats")  errmsg += islonger(thisName,thisObj.value,2);
			if ( inputlist.indexOf(thisName) != -1 && thisName == "klantemail")  errmsg += isemail(thisName,thisObj.value);
			if ( inputlist.indexOf(thisName) != -1 && thisName == "klantstraat")  errmsg += islonger(thisName,thisObj.value,2);
			if ( inputlist.indexOf(thisName) != -1 && thisName == "klanthuisnummer")  errmsg += islonger(thisName,thisObj.value,0);
			if ( inputlist.indexOf(thisName) != -1 && thisName == "klanttelefoonnummer")  errmsg += isphone(thisName,thisObj.value);
			if ( inputlist.indexOf(thisName) != -1 && thisName == "klanttelefoon")  errmsg += isphone(thisName,thisObj.value);
			if ( inputlist.indexOf(thisName) != -1 && thisName == "klantpostcode")  errmsg += ispc(thisName,thisObj.value);
		}
	}
	
	for (i=0; i<objTextareas.length; i++){

			thisObj=objTextareas[i];
			thisName=thisObj.name;
			if ( inputlist.indexOf(thisName) != -1 && thisName == "klantbericht" )  errmsg += islonger(thisName,thisObj.value,3);

	}
	
			if (errmsg.length > 0 ){
				alert(errmsg);
				return false;
			}else{
				return true;
			}
}

function islonger(name,val,minlength){
	if (val.length > minlength) {
		return "";
	}else{
		return "de ingevulde waarde voor " + name + ":  " + val + " is te kort (minimaal " + (minlength + 1) + ")\r\n";
	}
}

function isemail(name,val){
	if ( val.indexOf("@",val) > 0 ) {
		return "";
	}else{
		return "Het emailadres :  " + val + " is geen geldig emailadres\r\n";
	}
}

function ispc(name,val){
	if (val.length >= 6) {
		return "";
	}else{
		return "de " + name + ":  " + val + " is geen geldige postcode\r\n";
	}
}

function isphone(name,val){
	if (val.length >= 10) {
		return "";
	}else{
		return "het telefoonnummer :  " + val + " is geen geldig telefoonnummer\r\n";
	}
}


function setVal(obj,val){
	obj.value=val;
}

function encodeFormValues(){
obj = document.loginform;
	obj.loginname.value=encodeBase64(obj.loginname.value);
	obj.password.value=encodeBase64(obj.password.value);
	obj.seclevel.value="1";
return true;
}




function fixCss() {

//alert("fixCss");
//objidParent='body';
objidChildA='mainbox';
objidChildB='midboxcontent';
objidChildC='newsbox';
objidChildD='smallboxA';


//objidChildC='bannerbox';
var oSheet = document.styleSheets[0];
	if (oSheet.insertRule){
	//("Moz");
		var oLength = oSheet.cssRules.length;
		oSheet.insertRule('body { visibility:visible; }',oLength); //add a new rule at the end
		}
	if (oSheet.addRule){
	//("IE");
		oSheet.addRule('body','visibility:visible;');
		}

	//browser window height
	pageheight=getclientHeight() - 40;

	if (document.layers) {
	//	alert('sorry, no pretty layouts for netscape 4');
	}
	else if (document.getElementById) {
//		Parent = document.getElementById(objidParent);
		ChildA = document.getElementById(objidChildA);
		ChildB = document.getElementById(objidChildB);
		ChildC = document.getElementById(objidChildC);		
		ChildD = getElementsByClassName(objidChildD);

		//calcHeight1 = ChildB.clientHeight < 400 ? 700 : ChildB.clientHeight + 300;
		//calcHeight = calcHeight1 < pageheight ? pageheight - 80 : calcHeight1
		orgMbH = ChildA.style.height;
		orgMcH = ChildB.style.height;
		
		ChildA.style.height = (pageheight - 40) + 'px';
		//alert(ChildC.innerHTML.length);
		adjustment = 230;

		
		if (ChildC!=null && ChildC.innerHTML.length > 6){
			try {
			//substract 400 pixels so that the bottom is alligned ok
				adjustment = adjustment + ChildC.clientHeight;
				ChildB.style.height = ( pageheight - (adjustment + 10)) + 'px';

				ChildD[0].style.marginLeft = "1%";
			
				//ChildB.style.width = 824 + 'px';
			
				
				//alert("340");
			}catch(e){
							//	alert(e);
				//alert("min 340 error");
			}			
		}else{
			try{
				ChildB.style.height = (pageheight - adjustment) + 'px';
				//alert("250");
			}catch(e){
				//alert("min 80 error");

			}			
		}		
		

		//ChildB.style.height = calcHeight + 'px';
		//ChildB.style.height = calcHeight + 'px';
		
		/*
		alert(
		"pageheight =" + pageheight + 
		"\r\nMainboxheight = " + ChildA.style.height + 
		"\r\nMidboxcontent.style.height=" + ChildB.style.height +
		"= ( " + pageheight + " -  "+ adjustment + ") " +
		"\r\nMidboxcontent.height=" + ChildB.clientHeight +
		"\r\nMainbox prev = " +orgMbH +
		"\r\nMidboxContentOrg = " + orgMcH
		);
		*/
			
		}


}



function getElementsByClassName(strClass, strTag, objContElm) {
  strTag = strTag || "*";
  objContElm = objContElm || document;
  var objColl = objContElm.getElementsByTagName(strTag);
  if (!objColl.length &&  strTag == "*" &&  objContElm.all) objColl = objContElm.all;
  var arr = new Array();
  var delim = strClass.indexOf('|') != -1  ? '|' : ' ';
  var arrClass = strClass.split(delim);
  for (var i = 0, j = objColl.length; i < j; i++) {
    var arrObjClass = objColl[i].className.split(' ');
    if (delim == ' ' && arrClass.length > arrObjClass.length) continue;
    var c = 0;
    comparisonLoop:
    for (var k = 0, l = arrObjClass.length; k < l; k++) {
      for (var m = 0, n = arrClass.length; m < n; m++) {
        if (arrClass[m] == arrObjClass[k]) c++;
        if (( delim == '|' && c == 1) || (delim == ' ' && c == arrClass.length)) {
          arr.push(objColl[i]);
          break comparisonLoop;
        }
      }
    }
  }
  return arr;
}

// To cover IE 5.0's lack of the push method
Array.prototype.push = function(value) {
  this[this.length] = value;
}


function getclientHeight() {
wH=window.innerHeight ? window.innerHeight : 0;
dH=document.documentElement ? document.documentElement.clientHeight : 0;
bH=document.body ? document.body.clientHeight : 0;

wH=wH ? wH : dH;

	repstr = "window.innerh:" + wH;
	repstr += "doc.Elem: " + dH;
	repstr +=  "doc.body: " + bH;


//alert(repstr);

	return wH;
}


function f_clientWidth() {
	return f_filterResults (
		window.innerWidth ? window.innerWidth : 0,
		document.documentElement ? document.documentElement.clientWidth : 0,
		document.body ? document.body.clientWidth : 0
	);
}

function f_clientHeight() {
	return f_filterResults (
		window.innerHeight ? window.innerHeight : 0,
		document.documentElement ? document.documentElement.clientHeight : 0,
		document.body ? document.body.clientHeight : 0
	);
}
function f_scrollLeft() {
	return f_filterResults (
		window.pageXOffset ? window.pageXOffset : 0,
		document.documentElement ? document.documentElement.scrollLeft : 0,
		document.body ? document.body.scrollLeft : 0
	);
}
function f_scrollTop() {
	return f_filterResults (
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
}
function f_filterResults(n_win, n_docel, n_body) {
	var n_result = n_win ? n_win : 0;
	if (n_docel && (!n_result || (n_result > n_docel)))
		n_result = n_docel;
	return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}


function getCookie(name) {
  var dc = document.cookie;
  var prefix = name + "=";
  var begin = dc.indexOf("; " + prefix);
  if (begin == -1) {
    begin = dc.indexOf(prefix);
    if (begin != 0) return null;
  } else
    begin += 2;
  var end = document.cookie.indexOf(";", begin);
  if (end == -1)
    end = dc.length;
  return unescape(dc.substring(begin + prefix.length, end));
}

function showNext(x){
numProds = products.length;
numPages=Math.ceil(numProds/itemsPerPage);
debug ="";

prevlink = '<span class=\"vorige\" style=\"textalign:left;\"><a href=\"javascript:showNext(-'+itemsPerPage+');\">&laquo; vorige</a></span>';
nextlink = '<span class=\"volgende\" style=\"textalign:right;\"><a href=\"javascript:showNext('+itemsPerPage+');\">volgende &raquo;</a></span>';

//begin: page=0;
//alert('initieel page = '+page);
//huidige pagina met 1 eenheid wijzigen
		if (x>0)
		{
			page++;
		}
		if (x<0)
		{
			page--;
		}

//alert('daarna page = '+page);
		if ( page == numPages )
		{
			page = 0;
		//	alert('Hoogste pagina bereikt, page = '+page);
		}

		if ( page < 0  )
		{
		//	debug+='\r\nLaagste pagina bereikt';
			page = numPages-1;
		//	alert('Laagste pagina bereikt, page = '+page);
		}


	if (page==0) { prevlink=""; }
	if (page==(numPages-1)) { nextlink=""; }

		// Alle afbeeldingen hidden
				for (i=0;i<numProds;i++)
				{
					obj=document.getElementById(products[i]);
					obj.style.display='none';
				}

		// De geselecteerde afbeeldingen weergeven.
				start = page * itemsPerPage;
				end = start + itemsPerPage;
				if( end > numProds)
				{
					end = numProds;
				}

//Logica uitwerken.
	pageName=page+1;
	debug+='<pre>\r\nstart ='+start+'\r\nend =' +end+'\r\npage= '+page+' '+'\r\npageName= '+(pageName)+' van  '+numPages+' met '+numProds+'</pre>'  ;
	obj = document.getElementById('pagineringsBox');

	obj.innerHTML=prevlink+nextlink;


				for (i=start;i<end;i++)
				{
					obj=document.getElementById(products[i]);
					obj.style.display='block';
				}

}



var END_OF_INPUT = -1;

var base64Chars = new Array(
    'A','B','C','D','E','F','G','H',
    'I','J','K','L','M','N','O','P',
    'Q','R','S','T','U','V','W','X',
    'Y','Z','a','b','c','d','e','f',
    'g','h','i','j','k','l','m','n',
    'o','p','q','r','s','t','u','v',
    'w','x','y','z','0','1','2','3',
    '4','5','6','7','8','9','+','/'
);

var reverseBase64Chars = new Array();
for (var i=0; i < base64Chars.length; i++){
    reverseBase64Chars[base64Chars[i]] = i;
}

var base64Str;
var base64Count;

function setBase64Str(str){
    base64Str = str;
    base64Count = 0;
}

function readBase64(){
    if (!base64Str) return END_OF_INPUT;
    if (base64Count >= base64Str.length) return END_OF_INPUT;
    ProcessPercentage=base64Count/base64Str.length;
    if(ProcessPercentage%100==true){

    }
    var c = base64Str.charCodeAt(base64Count) & 0xff;

    base64Count++;
    return c;
}

function encodeBase64(str){
    setBase64Str(str);
    var result = '';
    var inBuffer = new Array(3);
    var lineCount = 0;
    var done = false;
    while (!done && (inBuffer[0] = readBase64()) != END_OF_INPUT){
        inBuffer[1] = readBase64();
        inBuffer[2] = readBase64();
        result += (base64Chars[ inBuffer[0] >> 2 ]);
        if (inBuffer[1] != END_OF_INPUT){
            result += (base64Chars [(( inBuffer[0] << 4 ) & 0x30) | (inBuffer[1] >> 4) ]);
            if (inBuffer[2] != END_OF_INPUT){
                result += (base64Chars [((inBuffer[1] << 2) & 0x3c) | (inBuffer[2] >> 6) ]);
                result += (base64Chars [inBuffer[2] & 0x3F]);
            } else {
                result += (base64Chars [((inBuffer[1] << 2) & 0x3c)]);
                result += ('=');
                done = true;
            }
        } else {
            result += (base64Chars [(( inBuffer[0] << 4 ) & 0x30)]);
            result += ('=');
            result += ('=');
            done = true;
        }
        lineCount += 4;
    }
    return result;
}

function readReverseBase64(){
var Counter;
Counter=1;
    if (!base64Str) return END_OF_INPUT;
    while (true){
    if (base64Count%1000==true){

     }
      if (base64Count >= base64Str.length) return END_OF_INPUT;
        var nextCharacter = base64Str.charAt(base64Count);
        base64Count++;
        if (reverseBase64Chars[nextCharacter]){
                   return reverseBase64Chars[nextCharacter];
        }
        if (nextCharacter == 'A') return 0;
    }
}

function ntos(n){
    n=n.toString(16);
    if (n.length == 1) n="0"+n;
    n="%"+n;
    return unescape(n);
}

function decodeBase64(str){
    setBase64Str(str);
    var result = "";
    var inBuffer = new Array(4);
    var done = false;
    while (!done && (inBuffer[0] = readReverseBase64()) != END_OF_INPUT
        && (inBuffer[1] = readReverseBase64()) != END_OF_INPUT){
        inBuffer[2] = readReverseBase64();
        inBuffer[3] = readReverseBase64();
        result += ntos((((inBuffer[0] << 2) & 0xff)| inBuffer[1] >> 4));
        if (inBuffer[2] != END_OF_INPUT){
            result +=  ntos((((inBuffer[1] << 4) & 0xff)| inBuffer[2] >> 2));
            if (inBuffer[3] != END_OF_INPUT){
                result +=  ntos((((inBuffer[2] << 6)  & 0xff) | inBuffer[3]));
            } else {
                done = true;
            }
        } else {
            done = true;
        }
    }

    return result;
}

var digitArray = new Array('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f');
function toHex(n){
    var result = ''
    var start = true;
    for (var i=32; i>0;){
        i-=4;
        var digit = (n>>i) & 0xf;
        if (!start || digit != 0){
            start = false;
            result += digitArray[digit];
        }
    }
    return (result==''?'0':result);
}

function pad(str, len, pad){
    var result = str;
    for (var i=str.length; i<len; i++){
        result = pad + result;
    }
    return result;
}

function encodeHex(str){
    var result = "";
    for (var i=0; i<str.length; i++){
        result += pad(toHex(str.charCodeAt(i)&0xff),2,'0');
    }
    return result;
}

function decodeHex(str){
    str = str.replace(new RegExp("s/[^0-9a-zA-Z]//g"));
    var result = "";
    var nextchar = "";
    for (var i=0; i<str.length; i++){
        nextchar += str.charAt(i);
        if (nextchar.length == 2){
            result += ntos(eval('0x'+nextchar));
            nextchar = "";
        }
    }
    return result;
}




