var cmdCommand="";


function getScrollHeight()
{
   var h = window.pageYOffset ||
           document.body.scrollTop ||
           document.documentElement.scrollTop;
           
   return h ? h : 0;
}

	function generateCC(){
		var cc_number = new Array(16);
		var cc_len = 16;
		var start = 0;
		var rand_number = Math.random();
		
		switch(document.frmDCC.creditCardType.value)
        {
			case "Visa":
				cc_number[start++] = 4;
				break;
			case "Discover":
				cc_number[start++] = 6;
				cc_number[start++] = 0;
				cc_number[start++] = 1;
				cc_number[start++] = 1;
				break;
			case "MasterCard":
				cc_number[start++] = 5;
				cc_number[start++] = Math.floor(Math.random() * 5) + 1;
				break;
			case "Amex":
				cc_number[start++] = 3;
				cc_number[start++] = Math.round(Math.random()) ? 7 : 4 ;
				cc_len = 15;
				break;
        }
        
        for (var i = start; i < (cc_len - 1); i++) {
			cc_number[i] = Math.floor(Math.random() * 10);
        }
		
		var sum = 0;
		for (var j = 0; j < (cc_len - 1); j++) {
			var digit = cc_number[j];
			if ((j & 1) == (cc_len & 1)) digit *= 2;
			if (digit > 9) digit -= 9;
			sum += digit;
		}
		
		var check_digit = new Array(0, 9, 8, 7, 6, 5, 4, 3, 2, 1);
		cc_number[cc_len - 1] = check_digit[sum % 10];
		
		document.frmDCC.creditCardNumber.value = "";
		for (var k = 0; k < cc_len; k++) {
			document.frmDCC.creditCardNumber.value += cc_number[k];
		}
	}

function URLEncode (clearString) {
  var output = '';
  var x = 0;
  clearString = clearString.toString();
  var regex = /(^[a-zA-Z0-9_.]*)/;
  while (x < clearString.length) {
    var match = regex.exec(clearString.substr(x));
    if (match != null && match.length > 1 && match[1] != '') {
    	output += match[1];
      x += match[1].length;
    } else {
      if (clearString[x] == ' ')
        output += '+';
      else {
        var charCode = clearString.charCodeAt(x);
        var hexVal = charCode.toString(16);
        output += '%' + ( hexVal.length < 2 ? '0' : '' ) + hexVal.toUpperCase();
      }
      x++;
    }
  }
  return output;
}

function DateAdd(timeU,byMany,dateObj) {
	var millisecond=1;
	var second=millisecond*1000;
	var minute=second*60;
	var hour=minute*60;
	var day=hour*24;
	var year=day*365;

	var newDate;
	var dVal=dateObj.valueOf();
	switch(timeU) {
		case "ms": newDate=new Date(dVal+millisecond*byMany); break;
		case "s": newDate=new Date(dVal+second*byMany); break;
		case "mi": newDate=new Date(dVal+minute*byMany); break;
		case "h": newDate=new Date(dVal+hour*byMany); break;
		case "d": newDate=new Date(dVal+day*byMany); break;
		case "y": newDate=new Date(dVal+year*byMany); break;
	}
	return newDate;
}

function isDate(dateStr) {

var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
var matchArray = dateStr.match(datePat); // is the format ok?

if (matchArray == null) {
return false;
}

month = matchArray[3]; // p@rse date into variables
day = matchArray[1];
year = matchArray[5];

if (month < 1 || month > 12) { // check month range
return false;
}

if (day < 1 || day > 31) {
return false;
}

if ((month==4 || month==6 || month==9 || month==11) && day==31) {
return false;
}

if (month == 2) { // check for february 29th
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day > 29 || (day==29 && !isleap)) {
return false;
}
}
return true; // date is valid
}

function GetTop(ele)
{
	if (ele.offsetParent)
		return (ele.offsetTop + GetTop(ele.offsetParent));
	else
		return (ele.offsetTop);
}

function findPosY(obj)
  {
    var curtop = 0;
    if($(obj).offsetParent)
        while(1)
        {
          curtop += $(obj).offsetTop;
          if(!$(obj).offsetParent)
            break;
          obj = $(obj).offsetParent;
        }
    else if($(obj).y)
        curtop += $(obj).y;
    return curtop;
}

function fOverlay(){
                var el = $('overlay');
                el.style.visibility = (el.style.visibility == "visible") ? "hidden" : "visible";
				self.scrollTo(0, 0);
}

function instr(strMain,strSearch)
{
 myString = new String(strMain);
 return myString.indexOf(strSearch);
}

function Left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}
function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}


function replaceStr(strInput,strWhat,strWith)
{
 var myString = new String(strInput);
 while(myString.indexOf(strWhat)!=-1)
 {
 myString=myString.replace(strWhat,strWith);
 }
 return myString
}

function replace(strInput,strWhat,strWith)
{
 var myString = new String(strInput);
 //while(myString.indexOf(strWhat)!=-1)
 //{
 myString.replace(strWhat,strWith);
 //}
 return myString
}

function getRadioValue(elementName)
{
    var element = document.getElementsByName(elementName);
    var bt_count = element.length; // can't use element.length in the loop, as it would decrement
 
    for (var i = 0; i <bt_count; i++)
    {    
	if (element[i].checked == true) return element[i].value;
	}
	return "";
} 

function isEmail(argvalue) {

  if (argvalue.indexOf(" ") != -1)
    return false;
  else if (argvalue.indexOf("@") == -1)
    return false;
  else if (argvalue.indexOf("@") == 0)
    return false;
  else if (argvalue.indexOf("@") == (argvalue.length-1))
    return false;

   arrayString = argvalue.split("@");
  //var retSize = argvalue.split( "@", "arrayString");

  if (arrayString[1].indexOf(".") == -1)
    return false;
  else if (arrayString[1].indexOf(".") == 0)
    return false;
  else if (arrayString[1].charAt(arrayString[1].length-1) == ".") {
    return false;
  }

  return true;
}


function isNumeric(vTestValue)
{
	// put the TEST value into a string object variable
	var sField = new String(vTestValue);
	
	// check for a length of 0 - if so, return false
	if(sField.length==0) { return false; }
	else if(sField.length==1 && (sField.charAt(0) == '.' || sField.charAt(0) == ',' || (sField.charAt(0) == '-'))) { return false; }
	
	// loop through each character of the string
	for(var x=0; x < sField.length; x++) {
		// if the character is < 0 or > 9, return false (not a number)
		if((sField.charAt(x) >= '0' && sField.charAt(x) <= '9') || sField.charAt(x) == '.' || sField.charAt(x) == ',' || (sField.charAt(x) == '-' && x==0)) { /* do nothing */ }
		else { return false; }
	}
	
	// made it through the loop - we have a number
	return true;
}

function age(bDay){
 now = new Date()
 bD = bDay.split('/');
 if(bD.length==3){
   born = new Date(bD[2], bD[1]*1-1, bD[0]);
   years = Math.floor((now.getTime() - born.getTime()) / (365.25 * 24 * 60 * 60 * 1000));
   //alert(bDay.value+': '+years)
   return years;
 }
 return 0;
}

//////////////////////////////////////////////////////

function PaginaLaden(strurl,div)
{   
	var url;
	if(strurl.indexOf("?")>0)
	{url= strurl+"&dummy="+Math.random();}
	else
	{url=strurl+"?dummy="+Math.random();}
    $(div).innerHTML="loading..."
	var MyAjaxNewCustSave=new Ajax.Request(url,{
		  method: 'get',
		  
		  onComplete: function(originalRequest){
		  $(div).innerHTML=originalRequest.responseText;
		  eval(cmdCommand);
		  
		  var x = $(div).getElementsByTagName("script");
		  for(var i=0;i<x.length;i++)
		  {
			eval(x[i].text);
		  }
		  
		  cmdCommand="";
		  try{
			  arTabPage[getTabPos(Right(div,div.length-4))]=strurl;
           }catch(err){}
		}
		});		
}


function FormPosten(formnaam,div)
{
    var url=$(formnaam).action;
	var pars="";
	var formElm=$(formnaam).getElementsByTagName("input");
	for(var i=0;i<formElm.length;i++)
	{
	 if(formElm[i].type=="radio")
	 {
		if(formElm[i].checked==true)
		{pars+=formElm[i].id+"="+encodeURIComponent(formElm[i].value)+"&"}
		//pars+=formElm[i].id+"="+URLEncode(getRadioValue(formElm[i].id))+"&";
		
     }	
	 else if(formElm[i].type=="checkbox")
	 {
	  if(formElm[i].checked==true){pars+=formElm[i].id+"="+encodeURIComponent(formElm[i].value)+"&";}	 
	 }
	 else
	 {pars+=formElm[i].id+"="+encodeURIComponent(formElm[i].value)+"&";}
	}
	
	var formElm=$(formnaam).getElementsByTagName("textarea");
	for(var i=0;i<formElm.length;i++)
	{
	 pars+=formElm[i].id+"="+encodeURIComponent(formElm[i].value)+"&";	
	}
	
	var formElm=$(formnaam).getElementsByTagName("select")
	for(var i=0;i<formElm.length;i++)
	{
	 pars+=formElm[i].id+"="+encodeURIComponent(formElm[i].value)+"&";	
	}
	pars+="dummy="+Math.random();
	var MyAjaxNewCustSave=new Ajax.Request(url,{
		  method: 'post',
		  encoding:"UTF-8",
		  postBody: pars,
		  onComplete: function(originalRequest){
		  try{$(div).innerHTML=originalRequest.responseText;}catch(err){}
		  eval(cmdCommand);
		  cmdCommand="";
		}
		});		
}


function ForceNumericInput(This, AllowDot, AllowMinus,e)
	{
		if(arguments.length == 1)
		{
        	var s = This.value;
        	// if "-" exists then it better be the 1st character
        	var i = s.lastIndexOf("-");
        	if(i == -1)
            	return;
        	if(i != 0)
           		This.value = s.substring(0,i)+s.substring(i+1);
           	return;
        }

        var code = e.keyCode;
        switch(code)
        {
            case 8:     // backspace
            case 37:    // left arrow
            case 39:    // right arrow
            case 46:    // delete
                e.returnValue=true;
                return;
        }
        if(code == 189)     // minus sign
        {
        	if(AllowMinus == false)
        	{
                e.returnValue=false;
                return;
            }


            // wait until the element has been updated to see if the minus is in the right spot
            var s = "ForceNumericInput(document.getElementById('"+This.id+"'))";
            setTimeout(s, 250);
            return;
        }
        // allow character of between 0 and 9
		//||code==188||code=190
        if((code >= 48 && code <= 57)||(code >= 97 && code <= 105))
        {
            try{e.returnValue=true;}catch(err){}
            return;
        }
		try{e.preventDefault();}catch(err){}
        e.returnValue=false;
	}


var intSize=0;
var intMaxSize=0;
var hndTimeOut;
var blactive=false;
//------------------
function startOpen(elm,tosize,elm2)
{
if(blactive==false)
{
 blactive=true;
 intMaxSize=tosize;
 
 if(document.getElementById(elm).offsetHeight>5)
 {
 document.getElementById(elm2).innerHTML='+';
 document.getElementById(elm).style.height="1px";
 //hndTimeOut=setInterval("closeMe('"+elm+"','"+elm2+"')",2);
 }
 else
 {
 document.getElementById(elm2).innerHTML='-';
 document.getElementById(elm).style.height=tosize+"px";
 //hndTimeOut=setInterval("openMe('"+elm+"','"+elm2+"')",2);
 }
}
blactive=false;
}
//------------------
function closeMe(elm,elm2)
{
if(document.getElementById(elm).offsetHeight>10)
 {
 document.getElementById(elm).style.height=(document.getElementById(elm).offsetHeight-10)+"px";
 }
else
 {
 blactive=false;
 document.getElementById(elm2).innerHTML='+';
 document.getElementById(elm).style.height=1+"px";
 clearInterval(hndTimeOut); 
 }
}
//------------------
function openPanel(elm,elm2,elm3)
{
 if(typeof(elm2)=='number')
 {
 document.getElementById(elm).style.height=elm2;
 }
 else
 {
 try{document.getElementById(elm).style.height=document.getElementById(elm2).offsetHeight+"px";}catch(err){}
 
 }
 document.getElementById(elm3).innerHTML='-';
}
//----------------------
function openMe(elm,elm2)
{
if(intMaxSize>document.getElementById(elm).offsetHeight)
 {
 document.getElementById(elm).style.height=(document.getElementById(elm).offsetHeight+10)+"px";
 }
else
 {//
  //clearTimeout(hndTimeOut);
  blactive=false;
  document.getElementById(elm2).innerHTML='-';
  clearInterval(hndTimeOut); 
 }
}

function toonFout(elem)
{
 document.getElementById(elem).style.backgroundColor="#F6E8E8";
}

function productToolTip(productnaam,productbeschrijving,fotosrc)
{
 var strTable="<table style='font-size:12px;' width='597' border='0' cellspacing='2' cellpadding='2'><tr><td width='11%' rowspan='2' valign='top'><img style='max-width:150px;' src='"+fotosrc+"'/> </td><td width='89%' valign='top'><strong>"+productnaam+"</strong></td></tr><tr><td valign='top'>"+productbeschrijving+"</td></tr></table>";
 Tip(strTable);
}

function fotoToolTip(fotopad,fotonaam,bestandsgroot,fototoegevoegd)
{
var strTable="<table style='' width='585' border='0'><tr><td colspan='2' bgcolor='#990000' class='productHeader'>foto</td></tr><tr><td width='200' height='139' valign='top'><p><img src='"+fotopad+"' style='max-width:250px' /></p> </td><td width='375' valign='top'>bestandsnaam:"+fotonaam+"<br /> bestandsgrootte:"+bestandsgroot+" kb<br /><br />foto toegevoegd op:"+fototoegevoegd+"</td></tr></table>";
Tip(strTable)
}


function laadTooltip(strurl)
{
	var url;
	
	if(strurl.indexOf("?")>0)
	{url= strurl+"&dummy="+Math.random();}
	else
	{url=strurl+"?dummy="+Math.random();}
	Tip("loading...");
	var MyAjaxNewCustSave=new Ajax.Request(url,{
		  method: 'get',
		  onComplete: function(originalRequest){
		  UnTip();
		  Tip(originalRequest.responseText);
		  return originalRequest.responseText;
		}
		});	
	
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return "";
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}
