/*******************************************
 * generic methods used throughout the site
 ******************************************/
 
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 null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function replaceWithTruncatedText (elements, len) {
  elements.each(function (element) { 
      if(element.innerHTML.length > len) { 
          element.innerHTML = element.innerHTML.substring(0,len).replace(/\b\s+\w+$\b/, '') + '...';
      }
  });
}

function setMSDS(){
	var hosturl = location.hostname;
	if (hosturl.match(".nz")){
		$$('.msds').invoke('update','<a href="http://msds.duluxgroup.com/cgi-bin/getmsds.cgi?menu=selleysnz&country=NZ&style=4">MSDS</a>');}
	else 
	  $$('.msds').invoke('update','<a href="http://msds.duluxgroup.com/cgi-bin/getmsds.cgi?menu=selleysau&country=AU&style=4">MSDS</a>');
}

removeBlanks=function(){
  var blank1 = $('profile').down('a');
  var blank2 = $('sign-panel').down('a');
  if (blank1) blank1.writeAttribute("target","_self");
  if (blank2) blank2.writeAttribute("target","_self");
}

var site = {

  // get variable from URL Query String
  getQueryVariable: function(variable) {
    var query = window.location.search.substring(1);
     var vars = query.split("&");
     for (var i=0;i<vars.length;i++) {
       var pair = vars[i].split("=");
       if (pair[0] == variable) {
         return pair[1];
       }
     }
  },
  
  // opens external in a new window
  handleExternalLinks: function() {
    var hostName = window.location.hostname;
    var links = document.getElementsByTagName("a");
    for(var i = 0; i < links.length; i++) {
      if(links[i].href.indexOf(hostName) == -1) {
        var curTitle = (links[i].getAttribute("title")) ? links[i].getAttribute("title") + " - ": "";
        links[i].setAttribute("target", "_blank");
        links[i].setAttribute("title", curTitle + "opens in new window");
      }
    }
  }
}


var slide = {
  
  // flag if running an animation on the passed element
  isAnimating: function(el, val){
    slide[el] = val;
  },

  // toggle a pullDown element using a button
  togglePullDown: function (btn, el) {
	  if (btn.hasClassName("active")) {
		if (slide[el] == undefined || site[el] != true) { this.closePullDown(el, btn); }
	  } else {
		if (slide[el] == undefined || site[el] != true) { this.openPullDown(el, btn); }
	  }
  },

  // open pullDown element
  openPullDown: function(el, btn) {
		slide.determineHeight(el);

		// animate
		new Effect.Morph($(el), {style:'height:'+slide.expandedHeight, duration:1});

		// toggle button
		btn.addClassName("active");
		btn.update("show less");
  },

  // close pullDown element
  closePullDown: function(el, btn) {
		slide.determineHeight(el);

		// animate
		new Effect.Morph($(el), {style:'height:'+slide.contractedHeight, duration:1});

		// toggle button
	  btn.removeClassName("active");
	  btn.update("read more");
  },

	determineHeight: function (el) {
		// determine heights
		if (!slide.contractedHeight) {
			slide.contractedHeight = $(el).getStyle('height');
		  $(el).addClassName("active");
		}

		if (!slide.expandedHeight) {
			slide.expandedHeight = $(el).getStyle('height');
		  $(el).removeClassName("active");
		}
	}
}

var pageLoaded = false;
Event.observe(window,'load',function(){
	pageLoaded = true;
	site.handleExternalLinks();
	replaceWithTruncatedText($$('.related-video h5 a'), 45);
	setTimeout("removeBlanks()",1000);
	setMSDS();
	
});




