

/*
  GETELEMENTSBYCLASSNAME FUNCTION
*/
var getElementsByClassName = function()
{

  // native
  if (document.getElementsByClassName)
  {
    return function(className, nodeName, parentElement)
    {
      var s = (parentElement || document).getElementsByClassName(className);

      if (nodeName && nodeName != '*')
      {
        nodeName = nodeName.toUpperCase();
        return Array.filter(s, function(el) { return el.nodeName == nodeName; });
      }else{
        return [].slice.call(s, 0);
      }
    }
  }

  // xpath
  if (document.evaluate)
  {
    return  function(className, nodeName, parentElement)
    {
      if (!nodeName) nodeName = '*';
      if (!parentElement) parentElement = document;

      var results = [], s, i = 0, element;
      
      s = document.evaluate(
          ".//" + nodeName + "[contains(concat(' ', @class, ' '), ' " + className + " ')]",
          parentElement,
          null,
          XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,
          null
      );

      while ((element = s.snapshotItem(i++)))
        results.push(element);

      return results;
    }
  }


  // generic
  return function(className, nodeName, parentElement)
  {
    if (!nodeName) nodeName = '*';
    if (!parentElement) parentElement = document;

    var results = [], s, i = 0, element;
    var re = new RegExp('(^|\\s)' + className + '(\\s|$)'), elementClassName;

    s = parentElement.getElementsByTagName(nodeName);
    
    while ((element = s[i++]))
    {
      if ((elementClassName = element.className) && (elementClassName == className || re.test(elementClassName)))
          results.push(element);
    }

    return results;
  }
}();

/*
  CHANGE PHOTO
*/
function setPhoto(objA, objImage){ 
  var strUrl;
  
  strUrl = objA.childNodes[0].src.replace('createthumb.asp?file=', '');
  strUrl = strUrl.replace('&width=100&source=s', '');
  strUrl = strUrl.replace('http://www.bmwspecialistrap.nl/', '');
  strUrl = strUrl.replace('http://bmwspecialistrap.nl/', '');
  
  document.getElementById(objImage).src = '_cms/upload/image/xl/' +strUrl;
    
  var objAElements = objA.parentNode.getElementsByTagName('A');
  
  for(i=0;i<objAElements.length;i++){
    objAElements[i].childNodes[0].className = 'occ_thumb';
  }
  
  objA.childNodes[0].className = 'occ_thumb_active';  
}


/*
  ATTACH MULTIPLE EVENTS ON ONLOAD
*/
window.onload = function(){
		makeLinksExternal();
		makeThumbsClickable();
}


/*
  MAKE EXTERNAL LINKS OPEN EXTERNAL (XHTML 1.0 STRICT)
*/
function makeLinksExternal(){
		if (!document.getElementsByTagName) return;

		var anchors = document.getElementsByTagName("a");
		for (var i=0; i<anchors.length; i++)
		{
			 var anchor = anchors[i];
			 if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external"){
			   anchor.target = "_blank";
			 }
			 
			 /*
			   MAKE LINKS BLUR (REMOVES THE DASHED BORDERS AFTER CLICK)
			 */
			 anchor.onfocus = function(){this.blur();}
		}
}


/*
  MAKE OCCASION THUMBS CLICKABLE
*/
function makeThumbsClickable(){
  var objThumbs = getElementsByClassName('thumb_link');
  
  for(i=0;i<objThumbs.length;i++){
    /*
      ATTACH FUNCTION
    */
    objThumbs[i].onclick = function(){setPhoto(this, 'mainphoto');return false;};
  }
}


