function WriteEmailAddress(partc,partb,parta,part2,part1) {
	it1 = "mail";
	it2 = "to";
	
	document.write('<a href=\"' + it1 + it2 + ':' + part1 + part2 + '@' + parta + partb + partc + '\">');
	document.write(part1 + part2 + '@' + parta + partb + partc + '</a>');
}

function Bookmark(url,title){
  if ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 4)) {
  window.external.AddFavorite(url,title);
  } else if (navigator.appName == "Netscape") {
    window.sidebar.addPanel(title,url,"");
  } else {
	alert("Sorry! Your browser doesn't support this function."); 
  }
}

ShowTopSearchResults = function() {
	if (document.getElementById('HeaderSearchTerm').value.length > 2) {
		document.getElementById('SearchResultsTop').style.display = 'block';
	}
	else {
		document.getElementById('SearchResultsTop').style.display = 'none';
	}
}

function ErrorMessage(CellRef, Message){


	/*
	elementsFields = document.getElementsByTagName("input");
	for (var intCounter = 0; intCounter < elementsFields.length; intCounter++)  {
		alert(elementsFields.length);
		document.elementsFields[intCounter].className='';
	}
	*/
	
    if (!document.getElementsByTagName){ return; }
    var allfields = document.getElementsByTagName("input");

    // loop through all input tags and remove styling
    for (var i=0; i<allfields.length; i++){
        var field = allfields[i];
        if ( (field.getAttribute("type") == "text") || (field.getAttribute("type") == "password") ) {
            field.className = '';
        }
    }

	/*
	document.getElementById(CellRef).className='ErrorBorder';
	*/
	if	(	(document.getElementById(CellRef).type == 'text') ||
			(document.getElementById(CellRef).type == 'password')
		)
	{
		document.getElementById(CellRef).focus();
	}
	else if (document.getElementById(CellRef).type == 'select-one') {
		document.getElementById(CellRef).options[0].focus();
	}
	else if (document.getElementById(CellRef).type == 'select-multiple') {
		document.getElementById(CellRef).options[0].focus();
	}
	if (Message) {
		alert(Message);
	}
	return false;
}

function MM_CheckFlashVersion(reqVerStr,msg){
  with(navigator){
    var isIE  = (appVersion.indexOf("MSIE") != -1 && userAgent.indexOf("Opera") == -1);
    var isWin = (appVersion.toLowerCase().indexOf("win") != -1);
    if (!isIE || !isWin){  
      var flashVer = -1;
      if (plugins && plugins.length > 0){
        var desc = plugins["Shockwave Flash"] ? plugins["Shockwave Flash"].description : "";
        desc = plugins["Shockwave Flash 2.0"] ? plugins["Shockwave Flash 2.0"].description : desc;
        if (desc == "") flashVer = -1;
        else{
          var descArr = desc.split(" ");
          var tempArrMajor = descArr[2].split(".");
          var verMajor = tempArrMajor[0];
          var tempArrMinor = (descArr[3] != "") ? descArr[3].split("r") : descArr[4].split("r");
          var verMinor = (tempArrMinor[1] > 0) ? tempArrMinor[1] : 0;
          flashVer =  parseFloat(verMajor + "." + verMinor);
        }
      }
      // WebTV has Flash Player 4 or lower -- too low for video
      else if (userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 4.0;

      var verArr = reqVerStr.split(",");
      var reqVer = parseFloat(verArr[0] + "." + verArr[2]);
  
      if (flashVer < reqVer){
        if (confirm(msg))
          window.location = "http://www.macromedia.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash";
      }
    }
  } 
}

function OpenWindow(destination, windowwidth, windowheight) {
	leftpos = (screen.width/2) - windowwidth;
	toppos = (screen.height/2) - windowheight;
	NewWindow = window.open(destination,'NewWindow','width=' + windowwidth + ',height=' + windowheight + ',toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,copyhistory=no,resizable=yes,left=' + leftpos + ',top=' + toppos + '');
}

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);
}

// Field Focus functionality
function focusOnId(id) {
	window.onload = function () {
		document.getElementById(id).focus();
	}
}

function limitFieldLength(limitField, limitCount, limitNum) {
	if (limitField.value.length > limitNum) {
		limitField.value = limitField.value.substring(0, limitNum);
	} else {
		limitCount.innerHTML = limitNum - limitField.value.length;
	}
}

function getSelectedItemValue(id) {
	var ItemValue = document.getElementById(id).options[document.getElementById(id).selectedIndex].value;
	return ItemValue;
}

function setSelectedItems(id,arrayItems) {
	/* Note that this doesn't unselect any existing items first */
	var id = document.getElementById(id);
	for (var i=0, l=id.options.length, o; i<l; i++)
	{
	  o = id.options[i];
	  if (arrayItems.indexOf(o.value) != -1)
	  {
		o.selected = true;
	  }
	}
}

function getSelectedRadioButtonValue(id) {
	/* Pass the form element itself rather than the element's name */
	var chosen = '';
	var len = id.length;
	for (i = 0; i <len; i++) {
		if (id[i].checked) {
			chosen = id[i].value;
		}
	}
	return chosen;
}

function uncheckCheckboxesByForm(id) {
	var myForm = document.getElementById(id);
    for (var i = 0; i < myForm.elements.length; i++ ) {
        if (myForm.elements[i].type == 'checkbox') {
			myForm.elements[i].checked = false;
        }
    }
}

function enableCheckboxesByForm(id) {
	var myForm = document.getElementById(id);
    for (var i = 0; i < myForm.elements.length; i++ ) {
        if (myForm.elements[i].type == 'checkbox') {
			myForm.elements[i].disabled = false;
        }
    }
}

function uncheckCheckboxByID(id) {
	document.getElementById(id).checked = false;
}

function disableCheckboxByID(id) {
	document.getElementById(id).disabled = true;
}

function highlightField(id) {
	document.getElementById(id).focus();
	document.getElementById(id).select();
}

function hideElement(id) {
	document.getElementById(id).className='Hidden';
}

function showElement(id) {
	document.getElementById(id).className='Visible';
}

function toggleClass(id,showclass,hideclass) {
	if (document.getElementById(id).className == showclass) {
		document.getElementById(id).className = hideclass;
	}
	else if (document.getElementById(id).className == hideclass) {
		document.getElementById(id).className = showclass;
	}
}

function changeClass(element, oldclass, newclass) {
	for (var i=0; i<document.getElementById(element).childNodes.length; i++) {
		if (document.getElementById(element).childNodes[i].className == oldclass) {
			document.getElementById(element).childNodes[i].className = newclass;
		}
	}
}

function checkRadio(frmName, rbGroupName) {
	var radios = document[frmName].elements[rbGroupName];
	for (var i=0; i <radios.length; i++) {
		if (radios[i].checked) {
			return true;
		}
	}
	return false;
}

/* Functions for cfgrid toolbar customisation */
function initToolbar(gridID) {
	var tb = ColdFusion.Grid.getTopToolbar(gridID);
	
	tb.add(
		{text:'Add',cls:"x-btn-text-icon",icon:"/images/icons/fugue/plus-circle.png",handler:btnHandler},
		{text:'Edit',cls:"x-btn-text-icon",icon:"/images/icons/famfamfam/page_edit.png",handler:btnHandler},
		{text:'Delete',cls:"x-btn-text-icon",icon:"/images/icons/fugue/cross-circle.png",handler:btnHandler},
		{text:'Duplicate',cls:"x-btn-text-icon",icon:"/images/icons/fugue/document-copy.png",handler:btnHandler}
	);

	//ColdFusion.Grid.showTopToolbar(gridID); - do this on the page itself, in case more buttons need to be added
}


