function getElementsByClassName(name) {
	var findStack = [], allel = (document.getElementsByTagName)?document.getElementsByTagName("*"):document.all;

	for(var a = 0; a<allel.length; a++) {
		if(allel[a].className == name) findStack.push(allel[a]);
	}
	
	return findStack;
}

function setCookie(cookieName,cookieValue,nDays) {
 var today = new Date();
 var expire = new Date();
 if (nDays==null || nDays==0) nDays=1;
 expire.setTime(today.getTime() + 3600000*24*nDays);
 document.cookie = cookieName+"="+escape(cookieValue)
                 + ";expires="+expire.toGMTString()
                 + ";path=/";
}

var toggleHelpPanel = function () {
  if ($('#header_block').css('display')=='block') {
    $('#header_block').hide();
    $('.button_open_panel').show();    
    setCookie('hide_help','1',60);
  } else {
    $('#header_block').show();
    $('.button_open_panel').hide();   
    setCookie('hide_help','0',60);
  }  
  return false;
}

var toggleObjects = function (object1_id,object2_id) {
	if (object1_ref=document.getElementById(object1_id)) {
		object1_ref.style.display = "block";
	}
	
	if (object2_ref=document.getElementById(object2_id)) {
		object2_ref.style.display = "none";
	}
	
	return false;
}

var selectAllCheckboxes = function (checkbox_class) {
  $('.'+checkbox_class).each(function () {
    this.checked = true;
   });
}

var deselectAllCheckboxes = function (checkbox_class) {
  $('.'+checkbox_class).each(function () {
    this.checked = false;
   });
}

var initDropdowns = function () {  
  $('.has_submenu .submenu').hide();
  $('.has_submenu').hover(function() {
    $(this).addClass('hover').find('.submenu').show();
  }, function() {
    $(this).removeClass('hover').find('.submenu').hide();
  });
}

var initHovers = function () {
  $('.hoverable').hover(
    function() {
      $(this).addClass('hover');
    },
    function() {
      $(this).removeClass('hover');
    }
  )
}

var initSelectableDivs = function () {
   $('.copy_url').click(function() {
      $(this).focus();
      $(this).select();
   });
}

var initHasDetails = function () {  
  $('.has_details .show_details').hover(
    function() {
      if (!$(this).parent('.has_details').is('.hover')) {
        $(this).parent('.has_details').toggleClass('hover').find('.submenu').toggle();
      }
     return false;
    },
    
    function () { }
  )
  
  $('.has_details').hover(
  function() { },
  
  function () {
    $(this).find('.submenu').hide();
    if ($(this).is('.hover')) {
      $(this).removeClass('hover');
    }
  });
}

var loadPreviewImage = function (button_clicked,path,width,height) {
  var image_container = $('.demo_content .image_container')[0]; 
  $(image_container).width(width);
  $(image_container).height(height);
  image_container.src='/images/blank.gif';
  image_container.src=path;
   
  $('.demo_content .demo_number_button').removeClass('selected');
  $(button_clicked).addClass('selected');
  
  return true;
}

/*var selectAllCheckboxes = function (checkbox_class) {
  $('.'+checkbox_class).each(function() {
    this.checked=true;
  });
}*/

var areAllChecked = function (checkbox_class) {
  var all_checked = true;
  var checkboxes = $('.'+checkbox_class);

  for (x=0;x<checkboxes.length;x++) {
    if (checkboxes[x].checked != true) {
      all_checked = false;
    }
  }
  return all_checked;
}

var checkToggler = function (link_controler,checkbox_class) {
  var toggler = $('#'+link_controler)
  console.log('aa');
  if (areAllChecked(checkbox_class)==true) {
    toggler.text('Deselect All');
  } else {
    toggler.text('Select All');
  } 
}

var initToggler = function (checkbox_class,link_controler) {
  var toggler = $('#'+link_controler)
  checkToggler(link_controler,checkbox_class);
  
  toggler.click(function() {
    if (areAllChecked(checkbox_class)==true) {
      $('.'+checkbox_class).each(function () { this.checked = false; });
      checkToggler(link_controler,checkbox_class);
    } else {
      $('.'+checkbox_class).each(function () { this.checked = true; });
      checkToggler(link_controler,checkbox_class);
    }
  });
  
  $('.'+checkbox_class).click(function () { checkToggler(link_controler,checkbox_class); })
}

var toggleButtonInit = function (toggler_name,toggled_elements) {
  $('.'+toggler_name).change(function () {
    if ($(this).attr('value')==1) {
      $('.'+toggled_elements).hide();
    } else {
      $('.'+toggled_elements).show();
    }
  })
  
  if ($($('.'+toggler_name)[1]).attr('checked')) {
    $('.'+toggled_elements).hide();
  }
}

$(document).ready(function() {
  initDropdowns();
  initHovers();  
  initSelectableDivs();
  initHasDetails();
});