function checkedAll (id, checked) {
  var el = document.getElementById(id);
  for (var i = 0; i < el.elements.length; i++) {
    el.elements[i].checked = checked;
  }
}


function faq(id){  
  if(Element.visible(id) == false){
    $$('.archiveTeaserCont').invoke('hide');
  }
  $(id).toggle();
}


function toggle(index){
  $(index).toggle();
}


function slide(id){
  //determine whether the item is currently open or closed
  if( Element.visible(id) == false || $(id).innerHTML == '<div align="center"><img src ="./resources/ajax.gif" alt="searching" /></div>'){
    slideDown(id);
  }else{
    slideUp(id);
  }
}


function slideDown(id){
  if(Element.visible(id) == false){
    new Effect.BlindDown($(id));
  }
}


function slideUp(id){
  if(Element.visible(id) == true){
    new Effect.BlindUp($(id));
  }
}


function slideArchive(id){
  //check if the archive is empty, if so then load for this year
  if($('archive_' + id).innerHTML == ''){
    //open it
    toggle('archive_' + id);
    
    //fill it
    var url = 'edit.php';
    var pars = 'id=loadArchive&year='+id;
    var target = 'archive_'+id;
       
    $(target).innerHTML = '<div align="center"><img src ="./resources/ajax.gif" alt="searching" /></div>';
    
    var myAjax = new Ajax.Updater(target, url, {method: 'post', parameters: pars });
  }else{
    slide('archive_' + id);  
  }
}


function search(){
  var terms = encodeURIComponent($('terms').value);
  var url = 'edit.php';
  var pars = 'id=search&terms='+terms;
  var target = 'searchResults';
   
  var handlerFunc = function(t) {
    $(target).innerHTML = t.responseText;
  }
  
  $(target).innerHTML = '<div class="chunk" align="center"><br/><img src ="./resources/ajax.gif" alt="searching" /></div>';
  new Ajax.Request(url , {method: 'post', parameters:pars, onSuccess:handlerFunc});
}


function getPostTeaser(id, view, view_id){
  //function to clean up
  var success = function(){}
  var url = 'edit.php';
  var pars = 'id=getPostTeaser&post=' + id + '&view='+view + '&view_id='+view_id;
  var target = 'post_'+id;
  
  //perhaps we've already loaded it?
  if($(target).innerHTML == ''){
    //open it
    $(target).show();
    $(target).innerHTML = '<div align="center"><img src ="./resources/ajax.gif" alt="searching" /></div>';
    
    //load it
    var myAjax = new Ajax.Updater(target, url, {method: 'post', parameters: pars, onComplete: success });
  }else{
    //toggle it open and closed
    $(target).toggle();
  }
}


function loadComments(itemId, type){
  var url = 'edit.php';
  var pars = 'id=loadComments&item=' + itemId + '&type=' + type;
  var target = 'comments_' + itemId;
  
  //check if the comment div is empty
  if($(target).innerHTML == ''){   
    //open then fill it
    $(target).show();
    $(target).innerHTML = '<div align="center"><img src ="./resources/ajax.gif" alt="searching" /></div>';
    var myAjax = new Ajax.Updater(target, url, {method: 'post', parameters: pars});  
    
  }else{
    slide(target);
  }
}


function dailyImage(image){
  //function to fetch comments for a particular item
  var success = function(){}
  var url = 'edit.php';
  var pars = 'id=dailyImage&photo=' + image;
  var target = 'daily';
  
  $('thinking').innerHTML = '<img src ="./resources/ajax.gif" style="vertical-align:text-top;" />'; 
  var myAjax = new Ajax.Updater(target, url, {method: 'post', parameters: pars, onComplete: success });  
}


function randomImage(standAlone){
  //fetch a random image
  var success = function(){}
  var url = 'edit.php';
  var pars = 'id=randomImage&standAlone=' + standAlone;
  var target = 'random';
	  
  $('thinking').innerHTML = '&nbsp;&nbsp;<img src ="./resources/ajax.gif" style="vertical-align:text-top;" />';
  var myAjax = new Ajax.Updater(target, url, {method: 'post', parameters: pars, onComplete: success });  
}


function getPhotosHelper(view, thumbSize){    
  if(view == '') view = window.view;
  if(thumbSize == '') thumbSize = window.thumbSize;

  //get the photos
  getPhotos(view, thumbSize);
  
  //reset the global vars
  window.view = view;
  window.thumbSize = thumbSize;
}


function getPhotos(view,size){
  //fetch the thumbnails
  var success = function(){
    Lightview.updateViews();
  }
  var url = 'edit.php';
  var pars = 'id=getPhotos&view=' + view + '&size=' + size;
  var target = 'dock';
  
  $(target).innerHTML = '<div align="center"><img src ="./resources/ajax.gif" alt="searching" /></div>';
  
  var myAjax = new Ajax.Updater(target, url, {method: 'post', parameters: pars, onComplete: success });    
}


function getTwitter(){
  var url = "./twitter.php";

  var req = new Ajax.Request(url, {
    method: 'get',
    onSuccess: function(transport){
       var json = transport.responseText.evalJSON();
       
       for (var i = 0; i < json.length; i++) {
         var status = json[i];
         $('twitStatus').innerHTML = status.text;  
       }
     }

  });
}


function replyTo($id, $item_id){
	//set hidden form input, set quote text, and scroll
	$('replyTo').value = $id;
	$('replyToText').innerHTML = "<b>Reply to:</b> <i>" + $('commentText_'+$id).innerHTML + "</i>&nbsp;&nbsp;(<a href=\"javascript:clearReplyTo();\">clear</a>)";
	$('commentForm_'+$item_id).scrollTo();
}

function clearReplyTo(){
	//unset hidden form input and clear text
	$('replyTo').value = '';
	$('replyToText').innerHTML = "";
}

function generateDesktop(){
	var photoid= $('photoid').value;
	var width = $('width').value;
	var height = $('height').value;
	var type = $('type').value;
	
	var url = 'generateDesktop.php';
	var pars = "id=generateDesktop&image="+photoid+"&height="+height+"&width="+width+"&type="+type;
	var target = 'desktop_working';
	var success = function(){}

	if(height && width){
		$(target).innerHTML = '<img src ="./resources/ajax.gif" alt="searching" />';
		var myAjax = new Ajax.Updater(target, url, {method: 'post', parameters: pars, onComplete: success });	
	}
}

function getNearbyPhotos(){
	var url = 'edit.php';
	var pars = "id=getGeoIP";
	var target = 'nearby';
    var success = function(t) {
    	if(t.responseText){
    		$(target).innerHTML = t.responseText;
    		slide(target);
    	}
	}
	
	new Ajax.Request(url , {method: 'post', parameters:pars, onSuccess:success});	
}