

addLoadListener(initHeroLinks);
//addLoadListener(initDeviceSelector);
//addLoadListener(initScrollListeners);
//addLoadListener(startScroller);
//addLoadListener(startDeviceSelector);
//addLoadListener(initScrollTransformer);
var loopflag=false;
var selm;
var stop_scroll = false ;
var scrollToPos = new Array(2);
function startScroller()
{
 if(location.href.indexOf('?scrollTo=')!=-1)
 {
  var ankerpos = location.href.indexOf('?scrollTo=') + "?scrollTo=".length;
  var anker = location.href.substring(ankerpos);
  setTimeout("godlyScrollToElement2('"+anker+"')",1000);
 }
}
function startDeviceSelector()
{
 if(location.href.indexOf('?device=')>-1)
 {
  var devicepos = location.href.indexOf('?device=') + 8;
  var device = location.href.substring(devicepos);
  showOrHideFeatsForDevice2(device);
 } 
}
function initDeviceSelector()
{
 if(getelm('device_list'))
 {
  var list = getelm('device_list').getElementsByTagName("a");
  for(var i = 0; i < list.length; i++ ) { attachEventListener(list[i], "click", showOrHideFeatsForDevice, false); }
 }
}
function initHeroLinks()
{
 if(getelm('links_superHero'))
 {
  
 var list= getelm('links_superHero').getElementsByTagName("a");
 for(var i = 0; i < list.length; i++ )
 {
  if(list[i].className=="hero_device_link")
  {
    attachEventListener(list[i], "mouseover", heroShow, false);
    attachEventListener(list[i], "mousemove", heroShowMove, false);
    attachEventListener(list[i], "mouseout", heroNoShow, false);
  }
 }
 }
}
function initScrollListeners()
{
 if( (document.URL).indexOf('mio-club') == -1 )
 {
 initScrollCleaner();
 var list = document.getElementsByTagName("a");
 for(var i = 0; i < list.length; i++ )
 {
  if( list[i].href.indexOf('#')!=-1 )
  {
   var link = list[i].href.substring(0,list[i].href.indexOf('#'));
   var pagina = location.href;
   if( location.href.indexOf('#')!=-1 )
   {
    pagina = location.href.substring(0,location.href.indexOf('#'));
   }
   if( location.href.indexOf('?')!=-1 )
   {
    pagina = location.href.substring(0,location.href.indexOf('?'));
   }
   if(link==pagina)
   {
    attachEventListener(list[i], "click", godlyScrollToElement, false);
   }
  }
 }
 initScrollTransformer();
 }
}
function initScrollCleaner()
{
 var list = document.getElementsByTagName("a");
 for(var i = 0; i < list.length; i++ )
 {
  if(location.href.indexOf('?scrollTo=')!=-1)
  {
   var ankerpos = location.href.indexOf('?scrollTo=') + "?scrollTo=".length;
   var anker = location.href.substring(ankerpos);
   list[i].href=list[i].href.replace("?scrollTo="+anker, ""); 
  }
 }
}
function initScrollTransformer()
{
 var list = document.getElementsByTagName("a");
 for(var i = 0; i < list.length; i++ )
 {
  if(( list[i].href.indexOf('#')!=-1 ) && ( list[i].className!="top_link" ))
  {
   list[i].href=list[i].href.replace("#", "?scrollTo="); 
  }
 }
}
function heroShow(event)
{
    var target = getEventTarget(event); 
    var elm=getelm(target.id+"_popup").innerHTML;
    var pic=getelm(target.id+"_img").src;
    var x=0; var y=0;
    var scrollingPosition = getScrollingPosition();
     if (typeof event.pageX != "undefined" && typeof event.x != "undefined")
     {
       x = event.pageX;
       y = event.pageY;
     }
     else
     {
       x = event.clientX + scrollingPosition[0];
       y = event.clientY + scrollingPosition[1];
     }
  
  
  
 var hero_pop_up;
    if(getelm('hero_pop_up'))
    {
        hero_pop_up=getelm('hero_pop_up');
    }
    else
    {
        hero_pop_up = document.createElement('div');  
        hero_pop_up.id="hero_pop_up";
        getelm('ajaxcontainer').appendChild(hero_pop_up);
    }
    hero_pop_up.innerHTML="<div><div class=\"img\"><img src=\""+pic+"\" alt=\"\" /></div><h1>"+target.innerHTML+"</h1><ul>"+elm+"</UL><div style=\"clear:both;display:none;\"></div></div><div class=\"einde\"></div>";
    hero_pop_up.style.display="block";
    hero_pop_up.style.position="absolute";
    var dim = getWidth(hero_pop_up);
 var pos = getPosition(target.parentNode);
 //alert(x);
    hero_pop_up.style.left=(x-180)+"px";
    hero_pop_up.style.top=(y-dim[1]-5)+"px";
    
}
function heroNoShow(event)
{
    var target = getEventTarget(event); 
    var elm=getelm('hero_pop_up');
    
    elm.style.display="none";
}
function heroShowMove(event)
{
    var target = getEventTarget(event); 
    var elm=getelm(target.id+"_popup").innerHTML;
    var x=0; var y=0;
    var scrollingPosition = getScrollingPosition();
     if (typeof event.pageX != "undefined" && typeof event.x != "undefined")
     {
       x = event.pageX;
       y = event.pageY;
     }
     else
     {
       x = event.clientX + scrollingPosition[0];
       y = event.clientY + scrollingPosition[1];
     }
    hero_pop_up=getelm('hero_pop_up');  
    var dim = getWidth(hero_pop_up);
    hero_pop_up.style.left=(x-180)+"px";
    hero_pop_up.style.top=(y-dim[1]-5)+"px";
    
}
function showOrHideFeatsForDevice(event)
{
  var target = getEventTarget(event); 
 var loper=target.parentNode;
 var teller=0;
 loper=loper.previousSibling; if(loper) if(loper.tagName!="LI") loper=loper.previousSibling;
 while(loper) {
  loper.firstChild.className=""; 
  teller=teller+1;
  loper=loper.previousSibling; if(loper) if(loper.tagName!="LI") loper=loper.previousSibling;
 }
 loper=target.parentNode;
 loper=loper.nextSibling; if(loper) if(loper.tagName!="LI") loper=loper.nextSibling;
 while(loper) {
  loper.firstChild.className=""; 
  loper=loper.nextSibling; if(loper) if(loper.tagName!="LI") loper=loper.nextSibling;
 }
 target.className="this_device"; 
 var verplaatsing= -84 * teller;
 //getelm("product_name_choise").style.background="url(img/devices/Mio-C520-features-headers.gif) transparent no-repeat 3px "+ (verplaatsing) +"px";
 getelm("product_name_choise").style.background=getelm("product_name_choise").style.backgroundImage+" transparent no-repeat 3px "+ (verplaatsing) +"px";
 var elementFeats = deviceFeat[target.innerHTML];
 var allFeats = deviceFeat["All"];
 for(var i = 0; i < allFeats.length; i++ )
 {
   if(komtElementVoor(allFeats[i],elementFeats))
   {
    updateFeatElement(allFeats[i], true);
   }
   else
   {
    updateFeatElement(allFeats[i], false);
   }
 }
 setTimeout("verwijderHiders()",500);
}
function showOrHideFeatsForDevice2(elm)
{
 var elementFeats = deviceFeat["Mio "+elm ];
 var allFeats = deviceFeat["All"];
 for(var i = 0; i < allFeats.length; i++ )
 {
   if(komtElementVoor(allFeats[i],elementFeats))
   {
    updateFeatElement(allFeats[i], true);
   }
   else
   {
    updateFeatElement(allFeats[i], false);
   }
 }
 setTimeout("verwijderHiders()",500);
}
function updateFeatElement(elm, show)
{
 if(show)
 {
  if( getelm(elm).getAttribute("class")=="feature_device_specific" )
  {
   updatingDiv(elm);
   getelm(elm).setAttribute("class","");
   getelm(elm).className="";
   getelm(elm+"Mini").setAttribute("class","");
   getelm(elm+"Mini").className="";
  }  
 }
 else
 {
  if( getelm(elm).getAttribute("class")!="feature_device_specific" )
  {
   updatingDiv(elm);
   getelm(elm).className="feature_device_specific";
   getelm(elm).setAttribute("class","feature_device_specific");
   getelm(elm+"Mini").className="no_feature_anymore";
   getelm(elm+"Mini").setAttribute("class","no_feature_anymore");
   zetVanachter2(elm,"Mini");
   zetVanachter2(elm,"");
   //alert(elm);
  }
 }
}
function updatingDiv(elm)
{
 var div = getelm(featDivUpdateConnection[elm]);
 if(getelm(div.id+"Hider"))
 { 
  getelm(div.id+"Hider").style.display="block";
  getelm(div.id+"HiderFront").style.display="block";
 }
 else
 {   
  var hiddenElement = document.createElement("div");
  hiddenElement.setAttribute("id", div.id+"Hider");
  hiddenElement.setAttribute("class", "Hider");
  var stijl = hiddenElement.style;
  stijl.position="absolute";
  var pos = getPosition(div);
  var dim  = getWidth(div);
  stijl.width=dim[0]+"px";
  stijl.height=dim[1]+"px";
  stijl.left=pos[0]+"px";
  stijl.top=pos[1]+"px";
  stijl.backgroundColor="#fff";
  stijl.filter = "alpha(opacity=70)";
  stijl.opacity = (0.7);
        stijl.MozOpacity = (0.7);
   stijl.KhtmlOpacity = (0.7);
  
  getelm('ajaxcontainer').appendChild(hiddenElement );
  
  
  var loader = document.createElement("div");
  loader.setAttribute("id", div.id+"HiderFront");
  loader.setAttribute("class", "Hider");
  loader.innerHTML = " Sorting List..";
  stijl=loader.style;
  stijl.position="absolute";
  
  var mijndim = getWidth(loader);
  stijl.left=pos[0] + (dim[0]/2) - (mijndim[0]/2) - 50 + "px";
  stijl.top= pos[1] + (dim[1]/2) - (mijndim[1]/2) + "px";
  stijl.backgroundColor="#fff";
  stijl.border="1px solid #ccc";
  stijl.padding="3px";
  getelm('ajaxcontainer').appendChild(loader);
 }
}
function zetVanachter(elm)
{
  var par = getelm(elm+"Mini").parentNode.parentNode;
  var div = par.removeChild(getelm(elm+"Mini").parentNode);
  par.appendChild(div);
}
function zetVanachter2(elm,prefix)
{
  var par = getelm(elm+prefix);
  while(par.tagName!="UL") par=par.parentNode;
  var child = getelm(elm+prefix);
  while(child.tagName!="LI") child=child.parentNode;
  var div = par.removeChild(child);
  par.appendChild(div);
  //alert(par.tagName);
}
function verwijderHiders()
{
 var list = getelm('ajaxcontainer').getElementsByTagName("div");
 for(var i = 0; i < list.length; i++ )
 {
  if( list[i].getAttribute("class")=="Hider")
  {
   list[i].style.display="none";
  }
 } 
}
function komtElementVoor(elm, arr)
{
 var vlag = false;
 for(var i = 0; i < arr.length; i++ ) {
  if(arr[i]==elm)
  {
   vlag=true;
   return vlag;
  }
 }
 return vlag;
}
function getClickedScrollTo(event)
{
 var target = getEventTarget(event);
 var elm;
 while((target.tagName!="A")&&(target.tagName!="a"))
 {
  target=target.parentNode; 
 }
 if(target.getAttribute("href").indexOf("/")==-1)
  elm=getelm((target.getAttribute("href")).substring(1,(target.getAttribute("href")).length));
 else
 {
  var begin=target.getAttribute("href").indexOf("?scrollTo=");
  var elem=target.getAttribute("href").substring(begin+"?scrollTo=".length);
  elm=getelm(elem);
 }
 return elm;
}
function godlyScrollToElement(event)
{
 var elm = getClickedScrollTo(event);
 
 var scrollPos=getScrollingPosition();
 var elmPos=getPosition(elm);
 var teller;
 var eenheid;
 if(scrollPos[1]<elmPos[1])
 {
   eenheid=0.1;
   teller=1;
 }
 else
 {
   eenheid=-0.1;
   teller=-1;
 }
 var midHoogte=scrollPos[1]+((elmPos[1]-scrollPos[1])/2);
 var safety=scrollPos[1];
 var stopFlag=false;
 while(((scrollPos[1]<elmPos[1]-teller)||(scrollPos[1]>elmPos[1]+teller))&&(stopFlag==false))
 {
  scrollBy(0,teller);
  scrollPos=getScrollingPosition(elm);
  if(safety==scrollPos[1])
  {
   stopFlag=true;
  }
  safety=scrollPos[1];
  if(eenheid>0)
  {
   if(scrollPos[1]<midHoogte)
   {
    teller=teller+eenheid;
   }
   else
   {
    teller=teller-eenheid; 
    if(teller<=0)teller=1;
   }
  }
  else
  {
   if(scrollPos[1]>midHoogte)
   {
    teller=teller+eenheid;
   }
   else
   {
    teller=teller-eenheid; 
    if(teller>=0)teller=-1;
   }
  }
 }
 if(elm)
 {
  //if(elm.id!="rightcolumn") magicHighLight(elm);
 }
 return false;
}
function godlyScrollToElement2(target)
{
 scrollTo(0,0);
 var elm = getelm(target);
 var teller=1;
 var eenheid;
 var scrollPos=getScrollingPosition(elm);
 var elmPos=getPosition(elm);
 if(scrollPos[1]<elmPos[1])
 {
   eenheid=0.1;
   teller=1;
 }
 else
 {
   eenheid=-0.1;
   teller=-1;
 }
 var midHoogte=scrollPos[1]+((elmPos[1]-scrollPos[1])/2);
 var safety=scrollPos[1];
 var stopFlag=false;
 while((scrollPos[1]<elmPos[1]-teller)&&(stopFlag==false))
 {
  scrollBy(0,teller);
  scrollPos=getScrollingPosition(elm);
  if(safety==scrollPos[1])
  {
   stopFlag=true;
  }
  safety=scrollPos[1];
  if(scrollPos[1]<midHoogte)
  {
   teller=teller+0.1;
  }
  else
  {
   teller=teller-0.1; 
   if(teller<=0)teller=1;
  }
 }
 //magicHighLight(elm);
 return false;
}
function magicHighLight(elm)
{
 loopFlag=true;
 //elm.className="highlight";
 naarGrijs(elm,"255");
 //selm=elm;
 //setTimeout("verwijderHighLightClass(selm)",500);
}
function verwijderHighLightClass(elm)
{
 elm.className="";
}
function keerKleurTerug(elm,waarde)
{
 res = parseInt(waarde);
 res=res+5;
 waarde=""+res;
 var letter="0";
 if(res<100) letter=waarde;
 else
 {
  switch(res)
  {
   case 10: letter="A";;break;
   case 11: letter="B";break;
   case 12: letter="C";break;
   case 13: letter="D";break;
   case 14: letter="E";break;
   case 15: letter="F";break;
  }
  letter=d2h(res);
 }
 var kleur="#"+letter+letter+letter;
 //alert(res+" / "+letter+" / "+kleur);
 elm.style.backgroundColor=kleur;
 if(waarde>245)
 {
  elm.className="";
 }
 if(waarde<250)
 {
  //setTimeout("keerKleurTerug(elm,waarde)",1000);
  selm=elm;
  setTimeout("keerKleurTerug(selm,'"+res+"')",100);
 }
 else
 {
  if(loopFlag==false)
  {
   elm.style.backgroundColor="#fff";
   elm.style.backgroundColor="transparant";
  }
  else
  {
   loopFlag=false;
   selm=elm;
   setTimeout("naarGrijs(selm,\"255\")",30);
  }
 }
}
function naarGrijs(elm,waarde)
{
 res = parseInt(waarde);
 res=res-5;
 waarde=""+res;
 var letter="0";
 if(res<100) letter=waarde;
 else
 {
  switch(res)
  {
   case 10: letter="A";;break;
   case 11: letter="B";break;
   case 12: letter="C";break;
   case 13: letter="D";break;
   case 14: letter="E";break;
   case 15: letter="F";break;
  }
  letter=d2h(res);
 }
 var kleur="#"+letter+letter+letter;
 //alert(res+" / "+letter+" / "+kleur);
 elm.style.backgroundColor=kleur;
 if(waarde<245)
 {
  elm.className="highlight";
 }
 if(waarde>232)
 {
    //alert(elm.id);
    selm=elm;
  //setTimeout("keerKleurTerug(elm,waarde)",1000); 
  setTimeout("naarGrijs(selm,'"+res+"')",30);
 }
 else
 {
  keerKleurTerug(elm,"232");
 }
}








function addLoadListener(fn)
{
 if (typeof window.addEventListener != 'undefined')
 {
   window.addEventListener('load', fn, false);
 }
 else if (typeof document.addEventListener != 'undefined')
 {
   document.addEventListener('load', fn, false);
 }
 else if (typeof window.attachEvent != 'undefined')
 {
   window.attachEvent('onload', fn);
 }
 else
 {
   var oldfn = window.onload;
   if (typeof window.onload != 'function')
   {
     window.onload = fn;
   }
   else
   {
     window.onload = function()
     {
       oldfn();
       fn();
     };
   }
 }
}
function attachEventListener(target, eventType, functionRef, capture)
{
 if (typeof target.addEventListener != "undefined")
 {
  target.addEventListener(eventType, functionRef, capture);
 }
 
 else if (typeof target.attachEvent != "undefined")
 {
  target.attachEvent("on" + eventType, functionRef);
 }
 
 else
 {
  eventType = "on" + eventType;
  if (typeof target[eventType] == "function")
  {
   var oldListener = target[eventType];
   target[eventType] = function()
        {
           oldListener();
           return functionRef();
        };
     }
     else
     {
        target[eventType] = functionRef;
     }
  }
}
function detachEventListener(target, eventType, functionRef, capture)
{
 if (typeof target.removeEventListener != "undefined")
 {
   target.removeEventListener(eventType, functionRef, capture);
 }
 else if (typeof target.detachEvent != "undefined")
 {
   target.detachEvent("on" + eventType, functionRef);
 }
 else
 {
   target["on" + eventType] = null;
 }
}
function getEventTarget(ev)
{
 if (typeof ev == "undefined") {
     ev = window.event;
  }
var e = window.event ? window.event : ev;
 var t = e.target ? e.target : e.srcElement;
return t;
}
function getPosition(theElement)
{
 var positionX = 0;
 var positionY = 0;
 while (theElement != null)
 {
   positionX += theElement.offsetLeft;
   positionY += theElement.offsetTop;
   theElement = theElement.offsetParent;
 }
 return [positionX, positionY];
}
function getWidth(theElement)
{
 var out = [theElement.offsetWidth, theElement.offsetHeight];
 return out;
}
function getElementsByAttribute(attribute, attributeValue)
{
 var elementArray = new Array();
 var matchedArray = new Array();
 if (document.all)
 {
   elementArray = document.all;
 }
 else
 {
   elementArray = document.getElementsByTagName("*");
 }
 for (var i = 0; i < elementArray.length; i++)
 {
   if (attribute == "class")
   {
     var pattern = new RegExp("(^| )" +
         attributeValue + "( |$)");
     if (pattern.test(elementArray[i].className))
     {
       matchedArray[matchedArray.length] = elementArray[i];
     }
   }
   else if (attribute == "for")
   {
     if (elementArray[i].getAttribute("htmlFor") ||
         elementArray[i].getAttribute("for"))
     {
       if (elementArray[i].htmlFor == attributeValue)
       {
         matchedArray[matchedArray.length] = elementArray[i];
       }
     }
   }
   else if (elementArray[i].getAttribute(attribute) ==
       attributeValue)
   {
     matchedArray[matchedArray.length] = elementArray[i];
   }
 }
 return matchedArray;
}
function getElementsByAttribute(attribute, attributeValue, elm)
{
 var elementArray = new Array();
 var matchedArray = new Array();
 if (document.all)
 {
   elementArray = document.all;
 }
 else
 {
   elementArray = elm.getElementsByTagName("*");
 }
 for (var i = 0; i < elementArray.length; i++)
 {
   if (attribute == "class")
   {
     var pattern = new RegExp("(^| )" +
         attributeValue + "( |$)");
     if (pattern.test(elementArray[i].className))
     {
       matchedArray[matchedArray.length] = elementArray[i];
     }
   }
   else if (attribute == "for")
   {
     if (elementArray[i].getAttribute("htmlFor") ||
         elementArray[i].getAttribute("for"))
     {
       if (elementArray[i].htmlFor == attributeValue)
       {
         matchedArray[matchedArray.length] = elementArray[i];
       }
     }
   }
   else if (elementArray[i].getAttribute(attribute) ==
       attributeValue)
   {
     matchedArray[matchedArray.length] = elementArray[i];
   }
 }
 return matchedArray;
}
function getScrollingPosition()
{
 var position = [0, 0];
 if (typeof window.pageYOffset != 'undefined')
 {
  position = [window.pageXOffset, window.pageYOffset];
 }
 else if (typeof document.documentElement.scrollTop != 'undefined' && document.documentElement.scrollTop > 0)
 {
  position = [document.documentElement.scrollLeft, document.documentElement.scrollTop];
 }
 else if (typeof document.body.scrollTop != 'undefined')
 {
  position = [document.body.scrollLeft, document.body.scrollTop];
 }
 return position;
}
function getElementStyle(elemID, IEStyleProp, CSSStyleProp) {
    var elem = document.getElementById(elemID);
    if (elem.currentStyle) {
        return elem.currentStyle[IEStyleProp];
    } else if (window.getComputedStyle) {
        var compStyle = window.getComputedStyle(elem, "");
        return compStyle.getPropertyValue(CSSStyleProp);
    }
    return "";
}
function d2h(d) {return d.toString(16);}
function h2d(h) {return parseInt(h,16);}
function getViewPortSize()
{
 var viewportwidth;
 var viewportheight;
 
 // the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight
 
 if (typeof window.innerWidth != 'undefined')
 {
      viewportwidth = window.innerWidth,
      viewportheight = window.innerHeight
 }
 
// IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)
 else if (typeof document.documentElement != 'undefined'
     && typeof document.documentElement.clientWidth !=
     'undefined' && document.documentElement.clientWidth != 0)
 {
       viewportwidth = document.documentElement.clientWidth,
       viewportheight = document.documentElement.clientHeight
 }
 
 // older versions of IE
 
 else
 {
       viewportwidth = document.getElementsByTagName('body')[0].clientWidth,
       viewportheight = document.getElementsByTagName('body')[0].clientHeight
 } 
 var dim = new Array(2);
 dim[0]=viewportwidth;
 dim[1]=viewportheight;
 return dim;
 
}
function scrolltop(){
    if(stop_scroll ==true){
        scroll(scrollToPos[0],scrollToPos[1]) ;
    }
}

function replace(string,text,by) {
    var strLength = string.length, txtLength = text.length;
    if ((strLength == 0) || (txtLength == 0)) return string;
    var i = string.indexOf(text);
    if ((!i) && (text != string.substring(0,txtLength))) return string;
    if (i == -1) return string;
    var newstr = string.substring(0,i) + by;
    if (i+txtLength < strLength)
        newstr += replace(string.substring(i+txtLength,strLength),text,by);
    return newstr;
}
function chkFrmOKTech()
{
if (chkFrmTech())
{
    document.getElementById("registration").submit();
}
}
function chkFrmOKNonTech()
{
var sendForm = false;
if (chkFrmNonTech())
{
sendForm = true;
}
return sendForm;
}
function chkFrmOKNonTech2()
{
if (chkFrmNonTech2())
{
    document.getElementById("registration").submit();
}
}
function showErr(str)
{
 var objId = "err_" + str ;
 var errObj = document.getElementById(objId);
 errObj.style.display="";  
}
function chkOne(colId)
{
 hideAllErr();
 if (document.getElementById(colId).value=="")
 {
  showErr(colId);
  return false;
 }else{
  hideErr(colId);
}
}
function chkOneEmail(colId)
{
 if (!isEmail(document.getElementById(colId).value))
 {
  showErr(colId);
  return false;
 }else{
  hideErr(colId);
}
}
function hideAllErr()
{    
 var errObj = document.getElementsByName("error_msg");
 //alert(errObj.length);
 for(var i=0;i<errObj.length;i++)
 {
  errObj[i].style.display="none";  
 }
}
function hideErr(str)
{
 var objId = "err_" + str ;
 var errObj = document.getElementById(objId);
 errObj.style.display="none";  
}
function chkFrmNonTech()
{
    var fieldsOK = true;
    /*Hide errors*/    
    hideErr("first_name");
    hideErr("last_name");
    hideErr("email");
    hideErr("subject");
    hideErr("comment");
   
    if (document.getElementById("comment").value=="")
    {
      showErr("comment");
      document.getElementById("comment").focus();
      fieldsOK = false;
    }
    if (document.getElementById("subject").value=="")
    {
      showErr("subject");
      document.getElementById("subject").focus();
      fieldsOK = false;
    }
    if (!isEmail(document.getElementById("email").value))
    {
      showErr("email");
      document.getElementById("email").focus();
      fieldsOK = false;
    }
    if (document.getElementById("last_name").value=="")
    {
      showErr("last_name");
      document.getElementById("last_name").focus();
      fieldsOK = false;
    }
    if (document.getElementById("first_name").value=="")
    {
      showErr("first_name");
      document.getElementById("first_name").focus();
      fieldsOK = false;
    }
    return fieldsOK;
}
function isEmail(str) 
{ 
 var email = str; 
 var pattern = /^([a-zA-Z0-9_\.-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/; 
 flag = pattern.test(email); 
 if(flag) 
     return true; 
 else 
     return false; 
}
function isDate(str)
{ 
 var reg = /^(\d+)-(\d{1,2})-(\d{1,2})$/; 
 var r = str.match(reg); 
 if(r==null)return false; 
 r[2]=r[2]-1; 
 var d= new Date(r[1], r[2],r[3]); 
 if(d.getFullYear()!=r[1])return false; 
 if(d.getMonth()!=r[2])return false; 
 if(d.getDate()!=r[3])return false; 
 return true;
} 
function isMobile(str)
{
 var sMobile = str; 
 var pattern = /^(13)(\d{9})$/; 
 flag = pattern.test(sMobile); 
 if(flag) 
     return true; 
 else 
     return false; 
}

// 3dviewpopup
function threeDviewpopup(model,width,height,prefix)
{
   createThreeDviewpopup(model,width,height,prefix);
   return false;
}
function closeThreeDview()
{
 getelm('ajaxcontainer').innerHTML="";
}
function createThreeDviewpopup(model,width,height,prefix)
{
    var elm = document.createElement("div");
    elm.id="fader"; var stijl=elm.style;
    stijl.position="absolute"; stijl.display="block";
    stijl.left="0px";stijl.top="0px";
    stijl.filter = "alpha(opacity=70)"; stijl.opacity = "0.7";stijl.MozOpacity = "0.7"; stijl.KhtmlOpacity = "0.7";
    stijl.backgroundColor="#000";
    stijl.width=document.body.parentNode.scrollWidth+"px";
    stijl.height=document.body.parentNode.scrollHeight+"px";
    getelm('ajaxcontainer').appendChild(elm);
 attachEventListener(getelm('fader'), "click", closeThreeDview, false);
    elm = document.createElement("div");
    elm.id="threeDviewpopupBox"; stijl=elm.style;
    stijl.position="absolute"; stijl.display="block";
 stijl.left="0px"; stijl.top="0px";
 
 var dim = getViewPortSize();
 stijl.left=(dim[0]-width)/2 + "px";
 stijl.top=getScrollingPosition()[1]+(dim[1]-height)/2 + "px";
    stijl.width=width+"px";
    stijl.height=height+"px";
    getelm('ajaxcontainer').appendChild(elm);
    getelm('threeDviewpopupBox').innerHTML=getPopUpSource(model,width,height,'applet',prefix);
    elm = document.createElement("div");
    elm.id="threeDviewCloseButton"; stijl=elm.style;
    stijl.position="absolute"; stijl.display="block";stijl.cursor="pointer";stijl.padding="5px";
 stijl.left="0px"; stijl.top="0px";
    elm.innerHTML="close";
    getelm('ajaxcontainer').appendChild(elm);
    var bleh = getWidth(elm);
    dim = getViewPortSize();
 stijl.left=((dim[0]-width)/2)+width - bleh[0] + "px";
 stijl.top=getScrollingPosition()[1]+(dim[1]-height)/2 - bleh[1]+1 + "px";
    stijl.backgroundColor="#fff";
    attachEventListener(getelm('threeDviewCloseButton'), "click", closeThreeDview, false);
}
function getPopUpSource(model,width,height,type,prefix)
{
    var source="";
    if(type=="applet")
    {
        source= '<applet height="'+height+'" width="'+width+'" mayscript="" codebase="." code="com.wirefusion.player.AppletPlayer" name="'+model+'"><param value="Created by http://www.web3d.co.uk" name="info"/><param value="/3D_models/'+prefix+model+'/'+model+'/loadgfx.jar,/3D_models/'+prefix+model+'/wf-player/startup8.jar,/3D_models/'+prefix+model+'/wf-player/core8.jar,/3D_models/'+prefix+model+'/wf-player/3D_Scene-5.04.jar,/3D_models/'+prefix+model+'/'+model+'/classes.jar" name="archive"/><param value="Registered version" name="license"/><param value="5.0.20.883" name="version"/><param value="/3D_models/'+prefix+model+'/'+model+'/" name="resourcefolder"/><param value="preload.jar" name="preloadfile"/><param value="6021-25" name="regid"/><param value="Other Java presentations are already running. To maximize performance and stability, it is recommended that you close them before proceeding. Would you like to pause this presentation until you have closed them?" name="runalonemessage"/><param value="135420-wfloadbg.gif" name="loadbgimage"/><param value="107270-wfloadbar.gif" name="loadbarimage"/>You need Java(tm) to view this presentation. <a href="http://www.java.com">Download Java</a></applet>'; 
    }
    else
    {
        source='<embed height="'+height+'" width="'+width+'" name="plugin" src="http://eu.mio.com/media/overview/moov-en.swf" type="application/x-shockwave-flash"/>';
    }
 return source;
}
function getelm(id) { return document.getElementById(id); }
function activateProductFlashMovie()
{
    createFlashpopup();
    return false;
}
function createFlashpopup()
{
    var width=512;
    var height=324;
    var elm = document.createElement("div");
    elm.id="fader"; var stijl=elm.style;
    stijl.position="absolute"; stijl.display="block";
    stijl.left="0px";stijl.top="0px";
    stijl.filter = "alpha(opacity=70)"; stijl.opacity = "0.7";stijl.MozOpacity = "0.7"; stijl.KhtmlOpacity = "0.7";
    stijl.backgroundColor="#000";
    stijl.width=document.body.parentNode.scrollWidth+"px";
    stijl.height=document.body.parentNode.scrollHeight+"px";
    getelm('ajaxcontainer').appendChild(elm);
 attachEventListener(getelm('fader'), "click", closeThreeDview, false);
    elm = document.createElement("div");
    elm.id="threeDviewpopupBox"; stijl=elm.style;
    stijl.position="absolute"; stijl.display="block";
 stijl.left="0px"; stijl.top="0px";
 
 var dim = getViewPortSize();
 stijl.left=(dim[0]-width)/2 + "px";
 stijl.top=getScrollingPosition()[1]+(dim[1]-height)/2 + "px";
    stijl.width=width+"px";
    stijl.height=height+"px";
    stijl.backgroundColor="#fff";
    getelm('ajaxcontainer').appendChild(elm);
    getelm('threeDviewpopupBox').innerHTML=getPopUpSource("all",width,height,'flash');
    elm = document.createElement("div");
    elm.id="threeDviewCloseButton"; stijl=elm.style;
    stijl.position="absolute"; stijl.display="block";stijl.cursor="pointer";stijl.padding="5px";
 stijl.left="0px"; stijl.top="0px";
    elm.innerHTML="close";
    getelm('ajaxcontainer').appendChild(elm);
    var bleh = getWidth(elm);
    dim = getViewPortSize();
 stijl.left=((dim[0]-width)/2)+width - bleh[0] + "px";
 stijl.top=getScrollingPosition()[1]+(dim[1]-height)/2 - bleh[1]+1 + "px";
    stijl.backgroundColor="#fff";
    attachEventListener(getelm('threeDviewCloseButton'), "click", closeThreeDview, false);   
}



//optional accessories
    function httpR()
    {
      http_request = false;
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
         http_request = new XMLHttpRequest();
         if (http_request.overrideMimeType) {
          // set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml');
            http_request.overrideMimeType('text/html');
         }
      } else if (window.ActiveXObject) { // IE
         try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      if (!http_request) {
         alert('Cannot create XMLHTTP instance');
         return false;
      }
 else
 {
  return http_request;
 }
    }
 function loadOptionalAccessories()
 {
  url="htt"+"p://"+location.host+"/inc/optionalAccessories.php";
  http_request=httpR();
  var dev=devicename.replace(/ Series/,"");
  if(dev.indexOf("Moov")==-1) dev="Mio "+dev;
  if(dev=="Mio C510E")dev="Mio C510";
  var parameters="device="+dev;
  http_request.onreadystatechange = loadOptionalAccessoriesHandler;
  http_request.open('POST', url, true);
  http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  http_request.setRequestHeader("Content-length", parameters.length);
  http_request.setRequestHeader("Connection", "close");
  http_request.send(parameters);
 }
function loadOptionalAccessoriesOld()
 {
  url="htt"+"p://"+location.host+"/inc/optionalAccessoriesOld.php";
  http_request=httpR();
  var dev=devicename.replace(/ Series/,"");
  if(dev.indexOf("Moov")==-1) dev="Mio "+dev;
  if(dev=="Mio C510E")dev="Mio C510";
  var parameters="device="+dev;
  http_request.onreadystatechange = loadOptionalAccessoriesHandler;
  http_request.open('POST', url, true);
  http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  http_request.setRequestHeader("Content-length", parameters.length);
  http_request.setRequestHeader("Connection", "close");
  http_request.send(parameters);
 }
 
 function loadOptionalAccessoriesHandler()
 {
  if (http_request.readyState == 4)
  {
           if (http_request.status == 200)
   {
              result = http_request.responseText;
                    if(result!="")
                    {
                        getelm('popularAcs').innerHTML = getelm('popularAcs').innerHTML + result;
                    }
         }
  } 
 }
 
 
function replaceProdName(elId, prodName){
    while(document.getElementById(elId).innerHTML.indexOf("***")!= -1){
        var medDescript = document.getElementById(elId).innerHTML;
        medDescript = medDescript.replace("***",prodName);
        document.getElementById(elId).innerHTML = medDescript;
    }
}
$.fn.tagName = function() {
 if(this.get(0))
    return this.get(0).tagName;
 else
 return false;
}

$(document).ready(function(){
 $(".productTextReadMore").hide();  
 $('.read-more').click(function() {
  $(".productTextReadMore").slideToggle(.1);
  return false;
 });      
});

var eanCodeLijst = new Array();
var info = new Array();
var devices_2_accesories = new Array();
var devices_on_this_page = new Array();
$(document).ready(function(){ 
 
 // REMOVE EMPTY EAN CODE ITEMS
 $('.EAN').each(function(){
	 if( $(this).html() == '' ) { if( $(this).parent().parent().parent().hasClass('included')==false ) $(this).parent().remove(); }
 });
 
 
 // START REORGANISE LIST
 $('.eshop_list').hide();
 var keywordArray = [new Array(),new Array()];
 var keywords2Array = ['E-shop maps','E-shop speed cams'];
 $('.keywords').each(function(){
  if( $(this).html().indexOf(';')!=-1 ) {
   var allKeyWords = ($(this).html()).split(";");
   allKeyWords.sort();
   var firstKeyWord = allKeyWords[0].split(":");
   var secondKeyWord = allKeyWords[1].split(":");
   var type = secondKeyWord[0];
   var index = jQuery.inArray(type,keywords2Array);
   if( index !=-1 ) {
    var region = firstKeyWord[1];
    while(region.indexOf(' ')!=-1) region = region.replace(' ',''); 
    if ( jQuery.inArray(region, keywordArray[index]) == -1 ) {
     keywordArray[index][keywordArray[index].length]=region;
     $(this).parent().attr('id',index+region).css('height','').css('background-color','#fff');
     var title = $('#'+index+region+'>h5>span').html().split(':')[0];
     $(this).parent().prepend('<h3 class="horizontalListingTitle">'+title+'</h3>');
     $('#'+index+region+'>h5>span').html( $('#'+index+region+'>h5>span').html().split(':')[1] );
     $('#'+index+region+'>h5').append($(this).parent().children('div'));
     $('#'+index+region+'>h5').append($(this));
    }
    else {
     $(this).parent().attr('id','toBeRemoved');
     $(this).parent().children('h5').children('span').html($(this).parent().children('h5').children('span').html().split(':')[1]);
     $(this).parent().children('h5').append($(this).parent().children('div'));
     $(this).parent().children('h5').append($(this));
     $('#'+index+region).append($(this).parent().parent().children('h5'));
     $('#toBeRemoved').remove();
    }
   }
   if((firstKeyWord[0]=='E-shop Travel Books')||(firstKeyWord[0]=='bleh')) {
    $(this).parent().children('h5').append($(this));
   }
  }
 });
 //$(".horizontalListing h5").css('height','25px').css('margin','0px').css('margin-bottom','5px');
 $(".horizontalListing h5:even").css('background-color','#FBFCFD');
 $(".horizontalListing h5:odd").css('background-color','#F1F5F9');
 $('.eshop_list').show();
 // END REORGANISE LIST
 
 
 // START EAN BLOCK
 $('.EAN').each(function(){
  if( $(this).html() != '' ){
   eanCodeLijst[eanCodeLijst.length] = $(this).html();
  }
 });  
 if(eanCodeLijst.length>0) { 
  $.get("/shop/getEshopInfo.php?eanList="+eanCodeLijst, function(data){              
   eval(data);
   for ( var i in info ) {
    $('#price_'+info[i][0]).html(info[i][1]); 
    $('#lb_price_'+info[i][0]).html(info[i][1]);
    if(info[i][2]!='0') { $('#previousprice_'+info[i][0]).html(info[i][2]); $('#lb_previousprice_'+info[i][0]).html(info[i][2]); }
	else { $('#previousprice_'+info[i][0]).html(''); $('#lb_previousprice_'+info[i][0]).html(''); }
	if(info[i][3]=='0') {
		$('#price_'+info[i][0]).parent().addClass('not_in_stock');
	}
   }   
  });
 }
 // END EAN BLOCK
 
 // MORE INFO BUTTON FANCY BOX LISTENER
 $('a.eshop_more_info').fancybox({ 'hideOnContentClick': false });
 // END MORE INFO BUTTON FANCY BOX LISTENER
 // EXTRA IMAGES FANCY BOX LISTENER
 $('a.extraImages').fancybox({ 'hideOnContentClick': false });
 // END EXTRA IMAGES FANCY BOX LISTENER
 
 
 // DEVICE FILTER
 //if(checkVar(product_filter)) {
 if( typeof(product_filter)!= "undefined" ) {
  $('.keywords').each(function(loper){
   $(this).parent().attr('id','access'+loper).addClass('accessItem');
   if($(this).html().indexOf(";")!=-1){
    var arr = $(this).html().split(";");
    jQuery.each(arr, function() {
     if( this.indexOf("Products:")!=-1 ) {
      var pos = jQuery.inArray((this.split(':'))[1], devices_on_this_page);
      if( pos == -1) {
       devices_on_this_page[devices_on_this_page.length]=(this.split(':'))[1];
       pos = devices_on_this_page.length-1;
       devices_2_accesories[pos]=new Array();
      }
      devices_2_accesories[pos][devices_2_accesories[pos].length]='access'+loper;
     }
    });
   }
  });
  $('#productgroup option:first-child').attr('value',-1);
  var i=0;
  jQuery.each(product_filter, function(){
   var check=0;
   jQuery.each(this[1], function(){
    var elm=this;
    jQuery.each(devices_on_this_page, function(){
     if(''+this==''+elm) check=1;
    });        
   });
   if(check!=0)         
    $('#productgroup').append('<option value="'+i+'">'+this[0]+'</option>');
   else {
    if( document.URL.indexOf('debug=true') != -1 ) $('#productgroup').append('<option style="color:#999" value="'+i+'">'+this[0]+'</option>');
   }
   i=i+1;
  });
  $('#product option:first-child').attr('value',-1);
  $('.accessItem').hide();
  cleanUpHori();
  $('body').append('<div id="loaderFade" style="display:none;position:absolute;background:#fff;width:730px;text-align:center"><img src="http://www.cmctraining.org/images/loading.gif" style="margin-top:60px" /></div>');
  var position = $('#main-content').offset();
  $('#loaderFade').css(position).css('opacity',0.6);
  $('#productgroup').change(function(){
   showFader();
   var sel = $(this).val();
   if(sel!=-1) {
    $('#product option:first-child').nextAll().remove();
    jQuery.each(product_filter[$(this).val()][1], function(){               
     var elm = this;               
     var pos = -1;
     jQuery.each(devices_on_this_page,function(){ if(''+elm==''+this) pos=1; });
     if( pos != -1 )               
      $('#product').append('<option value="'+this+'">'+this+'</option>');
     else {
      if( document.URL.indexOf('debug=true') != -1 ) $('#product').append('<option value="'+this+'" disabled>'+this+'</option>');
     }
    }); 
    
    $('#product').parent().show();
   }
   else { $('#product').parent().hide(); }
   $('.accessItem').hide();
   cleanUpHori();
   hideFader();
  });  
  $('#product').change(function(){
   showFader();        
   $('.accessItem').hide();         
   var sel = $(this).val();
   var pos = jQuery.inArray(sel, devices_on_this_page);
   if((sel!=-1) && (pos!=-1)) {
    jQuery.each(devices_2_accesories[pos], function(){
     $('#'+this).show();
    });
   }
   cleanUpHori();
   hideFader();
  }).parent().hide();  
 }
 // END DEVICE FILTER
 
 if( document.URL.indexOf('debug=true') != -1 ) {
 var i=0;
 var output="";
 jQuery.each(devices_2_accesories, function() {
  output=output+'<li style="margin-left: 20px"><b>'+devices_on_this_page[i]+'</b></li><ul>';
  jQuery.each(this, function() {
   output=output+'<li style="margin-left: 50px">'+ $('#'+$('#'+this).parent().attr('id')+' h3:first-child').html() +':'+ $('#'+this+' span:first-child').html() +'</li>';
  });
  output=output+'</ul>';
  i=i+1;
 });
 $('body').append('<ul>'+output+'</ul>');
 }
 
});
function debugalert(string){
 if( document.URL.indexOf('debug=true') != -1 ) alert(string);
}
function cleanUpHori(){
 $('.horizontalListing').each(function(){
  var check=0;
  
 if( $(this).html().indexOf('h3')!=-1 ){  
  $(this).children('h5').each(function(){
   if($(this).css('display')=='block') check=1;
  });
  if(check==1) {
   $(this).show();
  }
  else {
   $(this).hide();
  }
 }
 
 }); 
 $('.eshop_list>h2').each(function(){
  if($(this).next().height()==0) { $(this).hide();
  } else {
   $(this).show();
  }
 });
}
function showFader(){
 $('#loaderFade').css('height',$('#main-content').height()+'px').css('display','block');
}
function hideFader(){
 setTimeout ( "realHideFader()", 500 ); 
}
function realHideFader(){
 $('#loaderFade').css('display','none');
}


$(document).ready(function(){
 $(".video-player img").fadeTo(5, 0.7); 
 $(".video-player img").hover(function(){
  $(this).fadeTo("normal", 1.0); 
  },function(){
  $(this).fadeTo("normal", 0.7); 
 });
 $('.video-player-button').fancybox({ 'hideOnContentClick': false });
});
function checkVar(what)
{
return Boolean(typeof what != 'undefined' && what);
}

var oldimage="";
var resettimer;

$(document).ready(function(){
					   
	$('#new_product_nav_wrapper').prepend('<ul id="new_product_nav"></ul>');
	$('#new_product_nav_wrapper>div>h2').each(function(i) {
		$(this).css("display","none").parent().attr('id','shoptab'+i).attr('class','shoptabx').css("display","none");
		$('#new_product_nav').append('<li id="shoptabindexitem'+i+'" onclick="return changeShopTab('+i+');"><a href="#" onclick="return false;"><span>'+$(this).html()+'</span></a></li>');
	});
	
	$('#shoptab0').before('<div style="background:transparent url(http://eu.mio.com/media/assets/productDetailBg.gif) no-repeat scroll 0 0;display:block;height:15px;"></div>');
	$('.productDescription').css('padding-left','0px');
	$('.shoptabx>div').css('margin-left','10px').css('margin-right','10px');
	$('.shoptabx').append('<div style="background:transparent url(http://eu.mio.com/media/assets/productDetailBg.gif) no-repeat scroll 0 -15px;display:block;height:15px;"></div>');
	$('.shoptabx').css('background','transparent url(http://eu.mio.com/media/assets/productDetailBg.gif) repeat-y scroll -745px top');
	changeShopTab(0);
});
function changeShopTab(i) {
	$('#new_product_nav_wrapper li.selected').each(function() { $(this).attr("class",""); } );
	$('#new_product_nav_wrapper .shoptabx').each(function() { $(this).css("display","none"); } );
	$('#shoptab'+i).css("display","block");
	$('#shoptabindexitem'+i).attr('class','selected');
}


// SINGLE CHECKOUT JS
var aantalFaders = 0;
$(document).ready(function(){	
	$('.formCopy').hide();
	$('#formCopyName').show();

	 //$('a.edit_address').fancybox({ 'hideOnContentClick': false });
	 //$('a.newAddress').fancybox({ 'hideOnContentClick': false });
	 //$('a.select_address').click(function(){ doSelectAddress($(this)); return false; });
	 
	 /*$('.addressBookListing').click(function(){
		alert('test');									 
	  }).children().click(function(){ return false; });*/
	 
	 $('.addressBookListing input').change(function(){
	 	if($(this).attr('name')=='shipping_address')
			doSelectShipAddress($(this));
		else
			doSelectBillAddress($(this));
	 });
	 $('a.delete').click(function(){ doDeleteAddress($(this)); return false; });
	 $('#gotopay').click(function(){
		if(validateFormFields()==false) return false;
		$.post("new_checkout_address.php", $("#form1").serialize()+'&action=insert',function(data){
			if(data.indexOf('[~]')!=-1) {
				data = data.replace('[~]','');
				$('.displayAddress').html(data);
				$('#addressblok').hide();
				$('.containerDisplayAddress').show();
				$('.containerPaymentMethod').css('opacity',0).show().animate({opacity:1},1000);
			}
			return false;
		}); 
	 });
	 $('#loginknop').click(function(){
		var email=$('#login').val();
		if( $('#passwordbox').css('visibility')!='hidden' ) {
			email=email+'&pwd='+$('#pw').val();
		}
		$(this).css('visibility','hidden');
		$.get("address_form.php?checkEmail="+email,function(data){
			data = data.split('[~]');
			var aantal = data[0];
			if(aantal==1) var extra = data[2];
			data = data[1];
			
			if(aantal!=-1){
				if(aantal==0){
					$('.containerLogin').hide();
					$('.emailAddress').html($('#login').val());
					$('.containerEmail').show();
					$('#addressblok').css('opacity',0).show().animate({opacity:1},1000);
				} else {
					if(aantal==1) {
						$('.containerLogin').hide();
						$('.containerAddresses').hide();
						$('.emailAddress').html($('#login').val());
						$('.containerEmail').show();
						$('.displayAddress').html(extra);
						$('.containerDisplayAddress').css('opacity',0).show().animate({opacity:1},1000,function(){ $('.containerPaymentMethod').css('opacity',0).show().animate({opacity:1},1000); });
						
					} else {
						$('.endaddresses').before(data);
						$('.containerLogin').hide();
						$('.containerShipping').show();
						$('.containerBilling').show();
						$('.containerAddressForm').hide();
						$('.emailAddress').html($('#login').val());
						$('.containerEmail').show();
						$('#addressblok').css('opacity',0).show().animate({opacity:1},1000,function(){ $('.containerPaymentMethod').css('opacity',0).show().animate({opacity:1},1000); });
					}
				}
			} else {
				$('#passwordbox').css('visibility','visible');
				$('#loginknop').css('visibility','visible');
			}
		});
		return false;
	 });
	 $('#addressknop').click(function(){
		$(this).hide();
		//$('#addressblok').hide();
		$('#paymentblok').css('opacity',0).show().animate({opacity:1},1000);
		return false;
	 }); 
	 
	 $('.containerPaymentMethod input').change(function(){
		$(".containerPaymentMethod li.selected").removeClass('selected');												
	 	$(".containerPaymentMethod input[type='radio']:checked").parent().parent().addClass('selected');
	 });
	 
});

function showFormCopy(id){
	//$('.formCopy').hide();
	//$('#'+id).show();
	
	$('.formCopy').each(function(){
		if( ($(this).css('display')=='block')&&(id!=$(this).attr('id')) ) {
			$(this).animate({opacity:0},100,function(){
				$(this).hide().css('opacity',1);
				$('#'+id).css('opacity',0).show().animate({opacity:1},100);
			});
		}
	});
}

function doSelectAddress(elm){
	if( elm.parent().parent().parent().attr('class').indexOf('containerShipping')!=-1 ){
		doSelectShipAddress(elm);
	} else {
		doSelectBillAddress(elm);
	}
}
function doSelectShipAddress(elm){
	maakFader($('.containerShipping > .addressBook'));
	maakFader($('.containerBasket'));
	var id = elm.attr('id').replace('select_','');
	$.get("address_form.php?selectShipTo="+id,function(data){
		$('.containerShipping .selected').removeClass('selected');		
		data = data.split('[~]');
		updateShoppingBasket(data[2],data[1]);
		$('.containerShipping .addressBook #edit_'+ data[0].replace(/^\s+|\s+$/g,"") ).parent().addClass('selected');		
		clearFaders();		
	});
}
function doSelectBillAddress(elm){
	maakFader($('.containerShipping > .addressBook'));
	var id = elm.attr('id').replace('select_','');
	$.get("address_form.php?selectBillTo="+id,function(data){
		$('.containerBilling .selected').removeClass('selected');
		$('.containerBilling .addressBook #edit_'+ data.replace(/^\s+|\s+$/g,"") ).parent().addClass('selected');
		clearFaders();
	});
}
function doDeleteAddress(elm){
	var id = elm.attr('class').replace('delete delete_address_','');
	var answer = confirm ("Are you sure you want to delete this address?")
	if (answer) {
		maakFader($('.containerShipping > .addressBook'));
		$.get("address_form.php?delete="+id,function(data){
			$('.address_id_'+data.replace(/^\s+|\s+$/g,"")).parent().remove();			
			clearFaders();
		});
	}
}
function doEditAddress() {
	if(validateFormFields()==false) { alert('fouten in de form!'); return false; }
	$('#addressSubmitKnop').hide();
	$('#fancy_close').click();
	maakFader($('.containerBasket'));
	maakFader($('.containerShipping > .addressBook'));
	$.post("address_form.php", $("#form1").serialize(),function(data){
		data = data.split('[~]');
		updateShoppingBasket(data[5],data[4]);
		$('.address_id_'+data[0].replace(/^\s+|\s+$/g,"")).html(data[1]).next().next().html(data[2]).next().html(data[3]);
		clearFaders();		
	});
	return false;
}

function doAddAddress(elm) {
	if(validateFormFields()==false) { alert('fouten in de form!'); return false; }
	$('#addressSubmitKnop').hide();
	$('#fancy_close').click();
	maakFader($('.containerShipping > .addressBook'));
	$.post("address_form.php", $("#form1").serialize(),function(data){
		data = data.split('[~]');
		$('.addressBook > .endaddresses').before(data[0]);
		data[1]=data[1].replace(/^\s+|\s+$/g,"");
		if(data[1]=='ship') {
			maakFader($('.containerBasket'));
			$('.containerShipping .selected').removeClass('selected');
			$('.containerShipping .addressBook > div:last').addClass('selected');
			updateShoppingBasket(data[3],data[2]);
		}
		else {
			$('.containerBilling .selected').removeClass('selected');
			$('.containerBilling .addressBook > div:last').addClass('selected');
		}
		clearFaders();
	});
	return false;
}

function updateShoppingBasket(items,totals){
	$('.table_shopping_basket > tbody > tr').each(function(){
		if( $(this).hasClass('noremove') == false ) $(this).remove();
	});	
	$('.table_shopping_basket > tbody > tr:first').after(items);
	$('.orderTotal').html(totals);
}

function updateShoppingBasket2(items,totals){
	$('.table_shopping_basket').animate( { opacity:0 } , 1000, function() { 
		$('.table_shopping_basket > tbody > tr').each(function(){
			if( $(this).hasClass('noremove') == false ) $(this).remove();
		});	
		$('.table_shopping_basket > tbody > tr:first').after(items);
		$('.orderTotal').html(totals);
		$(this).animate( { opacity:1 } , 1000, function(){ $(this).css('filter',''); } );
	});
}

function maakFader(elm){
	aantalFaders=aantalFaders+1;
	var id = 'ssofader'+aantalFaders;
	$('body').append('<div id="'+id+'" class="ssofader"></div>');
	var eleOffset = elm.offset();
	$('#'+id).css('top',eleOffset.top);
	$('#'+id).css('left',eleOffset.left);
	$('#'+id).css('height',elm.css('height'));
}

function clearFaders(){
	$('.ssofader').remove();
	aantalFaders=0;
}

function verstopLabel(elm){
	elm.prev().hide();
}
function toonLabel(elm){
	if( elm.val() == '' ) {
		elm.prev().show();
	}
}
function toonInitLabels(){
	$('.containerAddressForm input').each(function(){
	if( ($(this).attr('type')!='submit')&&($(this).attr('type')!='hidden') ) {
		if( $(this).val() != '' ) {
			$(this).prev().hide();
		}
	}
	});
}
// END SINGLE CHECKOUT JS


function validateFormField(elm){
	var valid=false;
	for (i=0;i<expressions.length;i++) {
		if(expressions[i][0]==elm.attr('id')) {
			var elm = $('#'+expressions[i][0]);
			var UI = elm.val();
			var regex = new RegExp(expressions[i][1]);
			var succes = expressions[i][2];
			var required = expressions[i][3];
			if(!UI) {
				if(required==0)	{
					// emtpy but field is not required so validate true
					valid = true;
					elm.css('border','');
				}
				else {
					// empty and required so validate false
					valid = false;
					//elm.css('border','1px solid #f00');
					elm.parent().addClass('error');
				}
			} else {
				if(UI.match(regex)==null) check = false; else check = true;
				if(check==succes) {
					// input matches the regex, validate true
					valid = true;
					//elm.css('border','');
					elm.parent().removeClass('error');
				} else {
					// input does not matches the regex, validate false
					valid = false;
					//elm.css('border','1px solid #f00');
					elm.parent().addClass('error');
				}
			}
		}
	}
	return valid;
}

function validateFormFields(){
	var valid=true;
	for (i=0;i<expressions.length;i++) {
		var elm = $('#'+expressions[i][0]);
		var UI = elm.val();
		var regex = new RegExp(expressions[i][1]);
		var succes = expressions[i][2];
		var required = expressions[i][3];
		if(!UI) {
			if(required!=0)	{
				// empty and required so validate false
				valid = false;
				//elm.css('border','1px solid #f00');
				elm.parent().addClass('error');
			} else elm.parent().removeClass('error'); //elm.css('border','');
		} else {
			if(UI.match(regex)==null) check = false; else check = true;
			if(check!=succes) {
				// input does not matches the regex, validate false
				valid = false;
				//elm.css('border','1px solid #f00');
				elm.parent().addClass('error');
			} else elm.parent().removeClass('error');//elm.css('border','');
		}	
	}
	if(valid==true) $('#addresserror').css('visibility','hidden');
	else  $('#addresserror').css('visibility','');
	return valid;
}


// lost shop functions
function refresh_form(form_name) {
   form_name.action.value = 'refresh';
   form_name.state.value = '';
   form_name.submit();
   return true;
   }
// end lost shop functions   