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 addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			if (oldonload) {
				oldonload();
			}
			func();
		}
	}
}

//may use this one instead of 'byName' in future
//http://www.dustindiaz.com/getelementsbyclass/

function getElementsByClass(node,searchClass,tag) {
	var classElements = new Array();
	var els = node.getElementsByTagName(tag); // use "*" for all elements
	var elsLen = els.length;
	var pattern = new RegExp("\\b"+searchClass+"\\b");
	for (i = 0, j = 0; i < elsLen; i++) {
	 if ( pattern.test(els[i].className) ) {
	 classElements[j] = els[i];
	 j++;
	 }
	}
	return classElements;
}



//toggle functionality - http://www.interactionarchitect.com/articles/toggle.htm

var toggles = document.getElementsByName('error'); //should be removed as name this isnt valid w3c code
//var toggles = getElementsByClass(document,'error','*');

function visibilitytoggle(){
  for (var i = 0; i < toggles.length; i++){
  	toggles[i].style.display = 'none';
  }
}

function toggle(i){
  if (toggles[i].style.display == 'none'){
  	toggles[i].style.display = '';
  } else {
  	toggles[i].style.display = 'none';
  }
} 

function showall(){
	for (var i = 0; i < toggles.length; i++){
  	toggles[i].style.display = '';
  }
}

function hideall(){
  for (var i = 0; i < toggles.length; i++){
  	toggles[i].style.display = 'none';
  }
}

// show/hide divs by IDs
// http://support.internetconnection.net/CODE_LIBRARY/Javascript_Show_Hide.shtml

function hidediv(id) {
	//safe function to hide an element with a specified id
	if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById(id).style.display = 'none';
	} else {
		if (document.layers) { // Netscape 4
			document.id.display = 'none';
		} else { // IE 4
			document.all.id.style.display = 'none';
		}
	}
}

function showdiv(id) {
	//safe function to show an element with a specified id  
	if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById(id).style.display = 'block';
	} else {
		if (document.layers) { // Netscape 4
			document.id.display = 'block';
		} else { // IE 4
			document.all.id.style.display = 'block';
		}
	}
}

// set image id for deletion and post form
function deleteImage(imgID){
	document.forms.imgform.img_id.value = imgID;
	document.forms.imgform.submit();
}


//radio button value
function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}


function checkbox_checker(oField){
	var checkbox_choices = 0;

	for (counter = 0;  counter < oField.length; counter++){
		if (oField[counter].checked){
			checkbox_choices = checkbox_choices + 1;
			//alert('checkbox_choices ' + checkbox_choices);
		}
	}
	//alert('checkbox_choices ' + checkbox_choices);
	return checkbox_choices;
}

function checkbox_checked(oField){
	var checked = 0;
	if (oField.checked){
		checked = 1;
	}
	return checked;
}

//popup image

//really not important (the first two should be small for Opera's sake)
PositionX = 10;
PositionY = 10;
defaultWidth  = 600;
defaultHeight = 400;

//kinda important
var AutoClose = true;

//don't touch
function popImage(imageURL,imageTitle){
  var imgWin = window.open('','_blank','scrollbars=no,resizable=1,width='+defaultWidth+',height='+defaultHeight+',left='+PositionX+',top='+PositionY);
  if( !imgWin ) { return true; } //popup blockers should not cause errors
  imgWin.document.write('<html><head><title>'+imageTitle+'<\/title><script type="text\/javascript">\n'+
    'function resizeWinTo() {\n'+
    'if( !document.images.length ) { document.images[0] = document.layers[0].images[0]; }'+
    'var oH = document.images[0].height, oW = document.images[0].width;\n'+
    'if( !oH || window.doneAlready ) { return; }\n'+ //in case images are disabled
    'window.doneAlready = true;\n'+ //for Safari and Opera
    'var x = window; x.resizeTo( oW + 200, oH + 200 );\n'+
    'var myW = 0, myH = 0, d = x.document.documentElement, b = x.document.body;\n'+
    'if( x.innerWidth ) { myW = x.innerWidth; myH = x.innerHeight; }\n'+
    'else if( d && d.clientWidth ) { myW = d.clientWidth; myH = d.clientHeight; }\n'+
    'else if( b && b.clientWidth ) { myW = b.clientWidth; myH = b.clientHeight; }\n'+
    'if( window.opera && !document.childNodes ) { myW += 16; }\n'+
    'x.resizeTo( oW = oW + ( ( oW + 200 ) - myW ), oH = oH + ( (oH + 200 ) - myH ) );\n'+
    'var scW = screen.availWidth ? screen.availWidth : screen.width;\n'+
    'var scH = screen.availHeight ? screen.availHeight : screen.height;\n'+
    'if( !window.opera ) { x.moveTo(Math.round((scW-oW)/2),Math.round((scH-oH)/2)); }\n'+
    '}\n'+
    '<\/script>'+
    '<\/head><body onload="resizeWinTo();"'+(AutoClose?' onblur="self.close();"':'')+'>'+
    (document.layers?('<layer left="0" top="0">'):('<div style="position:absolute;left:0px;top:0px;display:table;">'))+
    '<img src='+imageURL+' alt="Loading image ..." title="" onload="resizeWinTo();">'+
    (document.layers?'<\/layer>':'<\/div>')+'<\/body><\/html>');
  imgWin.document.close();
  if( imgWin.focus ) { imgWin.focus(); }
  return false;
}

//highlight row links
function ConvertRowsToLinks(xTableId){
	var rows = document.getElementById(xTableId).getElementsByTagName("tr");
	for(i=0;i<rows.length;i++){
		var link = rows[i].getElementsByTagName("a")
		if(link.length == 1){
			rows[i].onclick = new Function("document.location.href='" + link[0].href + "'");
			rows[i].onmouseover = new Function("this.className='highlight'");
			rows[i].onmouseout = new Function("this.className=''");
		}
	}
}

//jump menu
function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

// change package cost - display cost and set price field
function setPrice(sCountry){
	if(sCountry=='Australia'){
		document.forms.purchase.postageprice.value = '$5';
		document.forms.purchase.totalprice.value = '$55';
		document.forms.purchase.txtAmount.value = 55;
	} else {
		document.forms.purchase.postageprice.value = '$15';
		document.forms.purchase.totalprice.value = '$65';
		document.forms.purchase.txtAmount.value = 65;
	}
}