//******************************************************************
// global Java Script functions go here:

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

// function that changes the images, called from Flash

function SwapPicture(pic_url) {
	document["ImageOfPicture"].src='/images/Galleries/' + pic_url;
}

// Switch Text (Hide/Display <div>)
var state = 'none';

function showhide(layer_ref) {
	
	// first - hide all <DIV> to clear the stage
	hide('div','sid');

	//now - display the selected description
	state = 'block'; 
	
	if (document.all) { //IS IE 4 or 5 (or 6 beta) 
		eval( "document.all." + layer_ref + ".style.display = state"); 
	} 
		if (document.layers) { //IS NETSCAPE 4 or below 
			document.layers[layer_ref].display = state; 
		} 
			if (document.getElementById &&!document.all) { 
			hza = document.getElementById(layer_ref); 
			hza.style.display = state; 
		} 
} 

function hide(t, id) {
	var tags = document.getElementsByTagName(t);
	for (var i = 0; i < tags.length; i++) {
		tags[i].style.display = 'none';
	}
}

// ############### ENHANCED TEXTAREA ############

function getMozSelection() {
  return document.getSelection();
}

// IE only - stores the current cursor position on any textarea activity
  function storeCaret (txtarea) { 
    if (txtarea.createTextRange) { 
      txtarea.caretPos = document.selection.createRange().duplicate();
    } 
  } 

// IE only - wraps selected text with lft and rgt
  function WrapIE(lft, rgt) {
    strSelection = document.selection.createRange().text;
    if (strSelection!="") {
      document.selection.createRange().text = lft + strSelection + rgt;
    }
  }

// Moz only - wraps selected text with lft and rgt
  function wrapMoz(txtarea, lft, rgt) {
    var selLength = txtarea.textLength;
    var selStart = txtarea.selectionStart;
    var selEnd = txtarea.selectionEnd;
    if (selEnd==1 || selEnd==2) selEnd=selLength;
    var s1 = (txtarea.value).substring(0,selStart);
    var s2 = (txtarea.value).substring(selStart, selEnd)
    var s3 = (txtarea.value).substring(selEnd, selLength);
    txtarea.value = s1 + lft + s2 + rgt + s3;
  }
  
// Chooses technique based on browser
  function wrapTag(txtarea, lft, rgt) {
    lft = unescape(lft);
    rgt = unescape(rgt);
    if (document.all) {
      WrapIE(lft, rgt);
    }
    else if (document.getElementById) {
      wrapMoz(txtarea, lft, rgt);
    }
  }

// Get a link via a prompt and wrap selected text
  function wrapWithLink(txtarea) {
    var my_link = prompt("URL:","http://");
    if (my_link != null) {
      lft="<a href=\"" + my_link + "\">";
      rgt="</a>";
      wrapTag(txtarea, lft, rgt);
    }
    return;
  }

// IE only - Insert text at caret position or at start of selected text
  function insertIE (txtarea, text) {
    if (txtarea.createTextRange && txtarea.caretPos) { 
      var caretPos = txtarea.caretPos; 
      caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text+caretPos.text + ' ' : 

text+caretPos.text;
    } else {
      txtarea.value = txtarea.value + text; 
    }
    return;
  } 

// Moz only - Insert text at caret position or at start of selected text
  function insertMoz(txtarea , lft) {
    var rgt="";
    wrapTag(txtarea, lft, rgt);
    return;
  }

// Switch function based on browser - Insert text at caret position or at start of selected text
  function insertTag(txtarea , lft) {
    if (document.all) {
      insertIE(txtarea, lft);
    }
    else if (document.getElementById) {
      insertMoz(txtarea, lft);
    }
  }
    
// prompt for image name. Insert image at caret position or at start of selected text
  function insertImage(txtarea,img_dir) {
    var my_link = prompt("Type the name of the image that you would like to be inserted:",img_dir);
    if (my_link != null) {
      lft="<img src=\"" + my_link + "\" border=0 align=left>";
      insertTag(txtarea, lft);
    }
    return;
  }

// End Processing code.

  
  function mouseover(el) {
    el.className = "raise";
  }
  
  function mouseout(el) {
    el.className = "buttons";
  }
  
  function mousedown(el) {
    el.className = "press";
  }
  
  function mouseup(el) {
    el.className = "raise";
  }