var isDHTML = 0;
var isLayers = 0;
var isAll = 0;
var isID = 0;

if (document.getElementById) {isID = 1; isDHTML = 1;}
else {
	browserVersion = parseInt(navigator.appVersion);
	if ((navigator.appName.indexOf('Netscape') != -1) && (browserVersion == 4)) {isLayers = 1; isDHTML = 1;}
	else {
		if (document.all) {isAll = 1; isDHTML = 1;}
	}
}

function findDOM(objectID,withStyle) {
var menuArea = "menuArea";
	if (withStyle == 1) {
		if (isID) { return (document.getElementById(objectID).style) ; }
		else { 
			if (isAll) { return (document.all[objectID].style); }
		else {
			if (isLayers) { return (document.layers[menuArea].layers[objectID]); }
		};}
	}
	else {
		if (isID) { return (document.getElementById(objectID)) ; }
		else { 
			if (isAll) { return (document.all[objectID]); }
		else {
			if (isLayers) { return (document.layers[menuArea].layers[objectID]); }
		};}
	}
}

function findLeft(objectID) {
	var domStyle = findDOM(objectID,1);
	var dom = findDOM(objectID,0);
	if (domStyle.left)
		return domStyle.left;
	if (domStyle.pixelLeft)
		return domStyle.pixelLeft;
	if (dom.offsetLeft)
		return dom.offsetLeft;
	return (null);
}

function findTop(objectID) {
	var domStyle = findDOM(objectID,1);
	var dom = findDOM(objectID,0);
	if (domStyle.top)
		return domStyle.top;
	if (domStyle.pixelTop)
		return domStyle.pixelTop;
	if (dom.offsetTop)
		return dom.offsetTop;
	return (null);
}

function setScrollLeft(strScroll) {
	if (window.pageXOffset != null)
		window.pageXOffset = strScroll; 
	if (document.body.scrollHeight != null)
		document.body.scrollLeft = strScroll;
	return (null);
}

function setScrollTop(strScroll) {
	if (window.pageYOffset != null)
		window.pageYOffset = strScroll;
	if (document.body.scrollWidth != null)
		document.body.scrollTop = strScroll;
	return (null);
}    

function scrollTo(objectID)
{
	var dom = document.getElementById(objectID);
	dom.scrollIntoView(true);
}

function setFocus(objectID)
{
	var dom = document.getElementById(objectID);
	dom.focus();
}

function setLayer(objectID,layerNum) {
	var domStyle = findDOM(objectID,1);
	domStyle.zIndex = layerNum;
}

function findLayer(objectID) {
	var domStyle = findDOM(objectID,1);
	if (domStyle.zIndex != null)
		return domStyle.zIndex;
	return (null);
}

function setVisibility(objectID, state) {	
	var dom = findDOM(objectID,1);
	dom.visibility = state;
	if ((dom.visibility == 'show') || (dom.visibility == 'visible'))
		dom.zIndex = 2000;
	else
		dom.zIndex = 0;
}				
				
function findVisibility(objectID) {
	var dom = findDOM(objectID,1);
	if ((dom.visibility == 'show') || (dom.visibility == 'visible'))
		{ return 'visible'; }
	return 'hidden';
}

function toggleVisibility(objectID) {
	var dom = findDOM(objectID,1);
	state = dom.visibility;
	if (state == 'hidden' || state == 'hide')
	{
		dom.visibility = 'visible';
		dom.zIndex = 2000;
	}
	else 
	{
		if (state == 'visible' || state == 'show')
		{
			dom.visibility = 'hidden';
			dom.zIndex = 0;
		}
		else 
		{
			dom.visibility = 'visible';
			dom.zIndex = 2000;
		}
	}
}

function setDisplay(objectID, state) {	
	var dom = findDOM(objectID,1);
	dom.display = state;
}

function toggleDisplay(objectID) {
	var dom = findDOM(objectID,1);
	state = dom.display;
	if (state == 'none')
	{
		dom.display = 'inline';
	}
	else 
	{
		if (state == 'inline')
		{
			dom.display = 'none';
		}
		else 
		{
			dom.display = 'inline';
		}
	}
}

function str_pad (input, pad_length, pad_string, pad_type) {
	input = String (input);
	pad_string = pad_string != null ? pad_string : " ";
	if (pad_string.length > 0)
	{
		var padi = 0;
		pad_type = pad_type != null ? pad_type : "STR_PAD_RIGHT";
		pad_length = parseInt (pad_length);
		switch (pad_type)
		{
		case "STR_PAD_BOTH":
			input = str_pad (input
				       , input.length + Math.ceil ((pad_length - input.length) / 2.0)
				       , pad_string, "STR_PAD_RIGHT");
			// break;  // no break!
		case "STR_PAD_LEFT":
			var buffer = "";
			for (var i = 0, z = pad_length - input.length; i < z; ++i)
			{
			  buffer += pad_string.charAt(padi); // [padi] IE 6.x bug
			  if (++padi == pad_string.length)
			    padi = 0;
			}
			input = buffer + input;
			break;
		default:
			for (var i = 0, z = pad_length - input.length; i < z; ++i)
			{
			  input += pad_string.charAt(padi);
			  if (++padi == pad_string.length)
			    padi = 0;
			}
			break;
		}
	}
	return input;
}

function format_number(pnumber,decimals){
	if (isNaN(pnumber)) { return 0};
	if (pnumber=='') { return 0};
	
	var snum = new String(pnumber);
	var sec = snum.split('.');
	var whole = parseFloat(sec[0]);
	var result = '';
	
	if(sec.length > 1){
		var dec = new String(sec[1]);
		dec = String(parseFloat(sec[1])/Math.pow(10,(dec.length - decimals)));
		dec = String(whole + Math.round(parseFloat(dec))/Math.pow(10,decimals));
		var dot = dec.indexOf('.');
		if(dot == -1){
			dec += '.'; 
			dot = dec.indexOf('.');
		}
		while(dec.length <= dot + decimals) { dec += '0'; }
		result = dec;
	} else{
		var dot;
		var dec = new String(whole);
		dec += '.';
		dot = dec.indexOf('.');		
		while(dec.length <= dot + decimals) { dec += '0'; }
		result = dec;
	}	
	return result;
}

function htmlspecialchars(p_string, ent_quotes) {
	ent_quotes = ent_quotes != null ? ent_quotes : " ";

	p_string = p_string.replace(/&/g, '&amp;');
	p_string = p_string.replace(/</g, '&lt;');
	p_string = p_string.replace(/>/g, '&gt;');
	if (ent_quotes == 'ENT_QUOTES')
		p_string = p_string.replace(/'/g, '&#039;');
	else
		p_string = p_string.replace(/"/g, '&quot;');
	
	return p_string;
}

function parse_str(str, array) {
    var glue1 = '=';
    var glue2 = '&';
 
    var array2 = (str+'').split(glue2);
    var array3 = [];
    var array2l = 0, tmp = '', x = 0;
 
    array2l = array2.length;
    for (x = 0; x<array2l; x++) {
        tmp = array2[x].split(glue1);
        array3[unescape(tmp[0])] = unescape(tmp[1]).replace(/[+]/g, ' ');
    }
 
    if (array) {
        array = array3;
    } else {
        return array3;
    }
}

function http_build_query( formdata, numeric_prefix, arg_separator ) {

    var key, use_val, use_key, i = 0, j=0, tmp_arr = [];
 
    if (!arg_separator) {
        arg_separator = '&';
    }
 
    for (key in formdata) {
        use_val = escape(formdata[key].toString());
        use_key = escape(key);
 
        if (numeric_prefix && !isNaN(key)) {
            use_key = numeric_prefix + j;
            j++;
        }
        tmp_arr[i++] = use_key + '=' + use_val;
    }
 
    return tmp_arr.join(arg_separator);
}

function setSize(objectID, width, height) {	
	var dom = findDOM(objectID,1);
	
	if (width != '') dom.width = width;
	if (height != '') dom.height = height;
}

TrigOn = new Image();
TrigOff = new Image();
TrigOn.src = "http://www.hill-bagging.co.uk/symbols/TrigRed.gif";
TrigOff.src = "http://www.hill-bagging.co.uk/symbols/TrigGreen.gif";

HomeOn = new Image();
HomeOff = new Image();
HomeOn.src = "http://www.hill-bagging.co.uk/symbols/HomeRed.gif";
HomeOff.src = "http://www.hill-bagging.co.uk/symbols/HomeGreen.gif";

function navSymbol(imgName, strOnOff) {
   if (document.images && imgName) {
      if (strOnOff == "On") 
         document.images[imgName].src = (imgName == "navHome") ? HomeOn.src : TrigOn.src;
      else 
         document.images[imgName].src = (imgName == "navHome") ? HomeOff.src : TrigOff.src;
   }
}
