var agt=navigator.userAgent.toLowerCase(); 
var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));

//1k DHTML API
d=document;l5=d.layers;op=navigator.userAgent.indexOf('Opera')!=-1;
function gE(e,f){
	if(l5){
		f=(f)?f:self;
		var V=f.document.layers;
		if(V[e])return V[e];
		for(var W=0;W<V.length;) t=gE(e,V[W++]);
		return t;
	}
	if(d.all)return d.all[e];
	return d.getElementById(e);
}
function sE(e){l5?e.visibility='show':e.style.visibility='visible';}
function hE(e){l5?e.visibility='hide':e.style.visibility='hidden';}
function sZ(e,z){l5?e.zIndex=z:e.style.zIndex=z;}
function sX(e,x){l5?e.left=x:op?e.style.pixelLeft=x:e.style.left=x;}
function sY(e,y){l5?e.top=y:op?e.style.pixelTop=y:e.style.top=y;}
function sW(e,w){l5?e.clip.width=w:op?e.style.pixelWidth=w:e.style.width=w;}
function sH(e,h){l5?e.clip.height=h:op?e.style.pixelHeight=h:e.style.height=h;}
function sC(e,t,r,b,x){l5?(X=e.clip,X.top=t,X.right=r,X.bottom=b,X.left=x):e.style.clip='rect('+t+' '+r+' '+b+' '+x+')';}
function wH(e,h){if(l5){Y=e.document;Y.open();Y.write(h);Y.close();}else if(e.innerHTML)e.innerHTML=h;}

function tVisShow(eN){e=gE(eN);if(e.style.display=='block')e.style.display='none';else e.style.display='block';}

function nav(url) {window.location=url;}

function LaunchImagePageManual(page, width, height) {
	OpenWin = this.open(page, "_blank","toolbar=no,menubar=no,location=yes,scrollbars=yes,resizable=yes, width=" + width + ", height=" + height);
	if (OpenWin) OpenWin.focus();
}

function LaunchWPPhoto(page) {
	LaunchImagePageManual(page, 700, 500);
}

function launchSlide(dir, imgNum) {
	launchSlideManual(dir, imgNum, null, null);
}

function launchSlideManual(dir, imgNum, width, height) {
	var defaultWidth=730;
	var defaultHeight=730;
	
	if (width == null) width = defaultWidth;
	if (height == null) height = defaultHeight;

	openWin = window.open("/output/slide.php?p=" + dir + "&c=" + imgNum, "photo","toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=yes, width=" + width + ", height=" + height);
	if (openWin) openWin.focus();	
}

function LaunchImagePageManual(page, width, height) {
	OpenWin = this.open(page, "photo","toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=yes, width=" + width + ", height=" + height);
	if (OpenWin) OpenWin.focus();
}

function LaunchImagePage(page) {
	LaunchImagePageManual(page, 750, 700);
}

function clientSideInclude(id, url) {
  var req = false;
  // For Safari, Firefox, and other non-MS browsers
  if (window.XMLHttpRequest) {
    try {
      req = new XMLHttpRequest();
    } catch (e) {
      req = false;
    }
  } else if (window.ActiveXObject) {
    // For Internet Explorer on Windows
    try {
      req = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        req = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {
        req = false;
      }
    }
  }
 var element = document.getElementById(id);
 if (!element) {
  alert("Bad id " + id +
   "passed to clientSideInclude." +
   "You need a div or span element " +
   "with this id in your page.");
  return;
 }
  if (req) {
    // Synchronous request, wait till we have it all
    req.open('GET', url, false);
    req.send(null);
    element.innerHTML = req.responseText;
  } else {
    element.innerHTML =
   "Sorry, your browser does not support " +
      "XMLHTTPRequest objects.";
  }
}

var menu_ns4;
var menu_op5;
var menu_op6;
var menu_agt;
var menu_mac;
var menu_ie; 
var menu_mac_ie;

function sniffBrowsers() {
	menu_ns4 = document.layers;
	menu_op5 = (navigator.userAgent.indexOf("Opera 5")!=-1) ||(navigator.userAgent.indexOf("Opera/5")!=-1);
	menu_op6 = (navigator.userAgent.indexOf("Opera 6")!=-1) ||(navigator.userAgent.indexOf("Opera/6")!=-1);
	menu_agt=navigator.userAgent.toLowerCase();
	menu_mac = (menu_agt.indexOf("menu_mac")!=-1);
	menu_ie = (menu_agt.indexOf("msie") != -1); 
	menu_mac_ie = menu_mac && menu_ie;
}


function getStyleObject(objectId, doc) {
    if(document.getElementById && document.getElementById(objectId)) {
	return document.getElementById(objectId).style;
    } else if (document.all && document.all(objectId)) {
	return document.all(objectId).style;
    } else if (document.layers && document.layers[objectId]) {
		return getObjNN4(document,objectId);
    } else {
	return false;
    }
} 

function changeObjectVisibility(objectId, newVisibility) {
    var styleObject = getStyleObject(objectId, document);
    if(styleObject) {
	styleObject.visibility = newVisibility;
	return true;
    } else {
	return false;
    }
} 

function findImage(name, doc) {
	var i, img;
	for (i = 0; i < doc.images.length; i++) {
    	if (doc.images[i].name == name) {
			return doc.images[i];
		}
	}
	for (i = 0; i < doc.layers.length; i++) {
    	if ((img = findImage(name, doc.layers[i].document)) != null) {
			img.container = doc.layers[i];
			return img;
    	}
	}
	return null;
}

function getImage(name) {
	if (document.layers) {
    	return findImage(name, document);
	}
	return null;
}

function getObjNN4(obj,name)
{
	var x = obj.layers;
	var foundLayer;
	for (var i=0;i<x.length;i++)
	{
		if (x[i].id == name)
		 	foundLayer = x[i];
		else if (x[i].layers.length)
			var tmp = getObjNN4(x[i],name);
		if (tmp) foundLayer = tmp;
	}
	return foundLayer;
}

function getElementHeight(Elem) {
	if (menu_ns4) {
		var elem = getObjNN4(document, Elem);
		return elem.clip.height;
	} else {
		var elem;
		if(document.getElementById) {
			var elem = document.getElementById(Elem);
		} else if (document.all){
			var elem = document.all[Elem];
		}
		if (menu_op5) {
			xPos = elem.style.pixelHeight;
		} else {
			xPos = elem.offsetHeight;
		}
		return xPos;
	} 
}

function getElementWidth(Elem) {
	if (menu_ns4) {
		var elem = getObjNN4(document, Elem);
		return elem.clip.width;
	} else {
		var elem;
		if(document.getElementById) {
			var elem = document.getElementById(Elem);
		} else if (document.all){
			var elem = document.all[Elem];
		}
		if (menu_op5) {
			xPos = elem.style.pixelWidth;
		} else {
			xPos = elem.offsetWidth;
		}
		return xPos;
	}
}

function getElementLeft(Elem) {
	if (menu_ns4) {
		var elem = getObjNN4(document, Elem);
		return elem.pageX;
	} else {
		var elem;
		if(document.getElementById) {
			var elem = document.getElementById(Elem);
		} else if (document.all){
			var elem = document.all[Elem];
		}
		xPos = elem.offsetLeft;
		tempEl = elem.offsetParent;
  		while (tempEl != null) {
  			xPos += tempEl.offsetLeft;
	  		tempEl = tempEl.offsetParent;
  		}
		return xPos;
	}
}


function getElementTop(Elem) {
	if (menu_ns4) {
		var elem = getObjNN4(document, Elem);
		return elem.pageY;
	} else {
		if(document.getElementById) {	
			var elem = document.getElementById(Elem);
		} else if (document.all) {
			var elem = document.all[Elem];
		}
		yPos = elem.offsetTop;
		tempEl = elem.offsetParent;
		while (tempEl != null) {
  			yPos += tempEl.offsetTop;
	  		tempEl = tempEl.offsetParent;
  		}
		return yPos;
	}
}


function getImageLeft(myImage) {
	var x, obj;
	if (document.layers) {
		var img = getImage(myImage);
    	if (img.container != null)
			return img.container.pageX + img.x;
		else
			return img.x;
  	} else {
		return getElementLeft(myImage);
	}
	return -1;
}

function getImageTop(myImage) {
	var y, obj;
	if (document.layers) {
		var img = getImage(myImage);
		if (img.container != null)
			return img.container.pageY + img.y;
		else
			return img.y;
	} else {
		return getElementTop(myImage);
	}
	return -1;
}

function getImageWidth(myImage) {
	var x, obj;
	if (document.layers) {
		var img = getImage(myImage);
		return img.width;
	} else {
		return getElementWidth(myImage);
	}
	return -1;
}



function getImageHeight(myImage) {
	var y, obj;
	if (document.layers) {
		var img = getImage(myImage);
		return img.height;
	} else {
		return getElementHeight(myImage);
	}
	return -1;
}

function moveXY(myObject, x, y) {
	obj = getStyleObject(myObject)
	if (menu_ns4) {
		obj.top = y;
 		obj.left = x;
	} else {
		if (menu_op5) {
			obj.pixelTop = y;
 			obj.pixelLeft = x;
		} else {
			obj.top = y + 'px';
 			obj.left = x + 'px';
		}	
	}
}

function changeClass(Elem, myClass) {
	var elem;
	if(document.getElementById) {
		var elem = document.getElementById(Elem);
	} else if (document.all){
		var elem = document.all[Elem];
	}
	if (menu_op5 || menu_op6) elem.style.className = myClass;
	else elem.className = myClass;
}

function changeBGColour(myObject, colour) {
	if (menu_ns4) {
		var obj = getObjNN4(document, myObject);
		obj.bgColor=colour;
	} else {
		var obj = getStyleObject(myObject);
		if (menu_op5) {
			obj.background = colour;	
		} else {
			obj.backgroundColor = colour;
		}	
	}
}

function changeImage(target, source) {
	var imageObj;
	
	if (menu_ns4) {
		imageObj = getImage(target);
		if (imageObj) imageObj.src = eval(source).src; 
	} else {
		imageObj = eval('document.images.' + target);
		if (imageObj) imageObj.src = eval(source).src; 
	}
}


// this function shows/hides a class, and changes the HTML of source to
// reflect the status
function wp_toggle(classID, source) {
    var elements = getElementsByClassName(classID);
    for ( var i=0, len=elements.length; i<len; ++i ){
	if(elements[i].style.display == 'none') {
	    elements[i].style.display = '';
	    document.getElementById(source).innerHTML = 'hide';
	} else {
	    elements[i].style.display = 'none';
	    document.getElementById(source).innerHTML = 'show';
	}
    }
}

/*
    Developed by Robert Nyman, http://www.robertnyman.com
    Code/licensing: http://code.google.com/p/getelementsbyclassname/
*/
var getElementsByClassName = function (className, tag, elm){
    if (document.getElementsByClassName) {
	getElementsByClassName = function (className, tag, elm) {
	    elm = elm || document;
	    var elements = elm.getElementsByClassName(className),
		nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
		returnElements = [],
		current;
	    for(var i=0, il=elements.length; i<il; i+=1){
		current = elements[i];
		if(!nodeName || nodeName.test(current.nodeName)) {
		    returnElements.push(current);
		}
	    }
	    return returnElements;
	};
    }
    else if (document.evaluate) {
	getElementsByClassName = function (className, tag, elm) {
	    tag = tag || "*";
	    elm = elm || document;
	    var classes = className.split(" "),
		classesToCheck = "",
		xhtmlNamespace = "http://www.w3.org/1999/xhtml",
		namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
		returnElements = [],
		elements,
		node;
	    for(var j=0, jl=classes.length; j<jl; j+=1){
		classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
	    }
	    try	{
		elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
	    }
	    catch (e) {
		elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
	    }
	    while ((node = elements.iterateNext())) {
		returnElements.push(node);
	    }
	    return returnElements;
	};
    }
    else {
	getElementsByClassName = function (className, tag, elm) {
	    tag = tag || "*";
	    elm = elm || document;
	    var classes = className.split(" "),
		classesToCheck = [],
		elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
		current,
		returnElements = [],
		match;
	    for(var k=0, kl=classes.length; k<kl; k+=1){
		classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
	    }
	    for(var l=0, ll=elements.length; l<ll; l+=1){
		current = elements[l];
		match = false;
		for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
		    match = classesToCheck[m].test(current.className);
		    if (!match) {
			break;
		    }
		}
		if (match) {
		    returnElements.push(current);
		}
	    }
	    return returnElements;
	};
    }
    return getElementsByClassName(className, tag, elm);
};

