//Ajax functions
var main
function init(initalsourceURL,parentTagType,parentTagId,parentTagName,targetElementId) {
	main = document.createElement(parentTagType);
	main.name = parentTagName;
	main.id = parentTagId;
	document.getElementById(targetElementId).appendChild(main);
	makeRequest(initalsourceURL,parentTagId);
}
function submitinfo(url) { 
	var http_request
	if (window.XMLHttpRequest)
	{
		http_request = new XMLHttpRequest(); 
	}
	else
	{
		http_request = new ActiveXObject("Microsoft.XMLHTTP"); 
	}
	http_request.open('POST', url, true);
	http_request.send('');
};
function makeRequest(url,targetdiv) {
	var http_request
	if (window.XMLHttpRequest)
	{
		http_request = new XMLHttpRequest(); 
	}
	else
	{
		http_request = new ActiveXObject("Microsoft.XMLHTTP"); 
	}
	http_request.open('POST', url, true);//true=async mode
	http_request.onreadystatechange = function()
		{
			if(http_request.readyState == 4 && http_request.status == 200)
			{
				document.getElementById(targetdiv).innerHTML = http_request.responseText;
			}
		}
	http_request.send('');
}
function getFormAsString(formName) {
	var returnString = "";
	var lRand = Math.random();    
	formElements=document.forms[formName].elements;
	for(var i=formElements.length-1;i>=0; --i ){
		returnString+="&" 
		if(formElements[i].type=='checkbox'){
			if(formElements[i].checked){
				returnString+=escape(formElements[i].name)+"=on" 
			}
		}else{
			returnString+=escape(formElements[i].name)+"="+escape(formElements[i].value);
		}
	}
	return returnString+= "&Rand=" + lRand; 
}

//CSS Commands (make things appear and disappear) 
function openMenu(menuId) {
var menu = document.getElementById(menuId);
if (menu)

    menu.style.visibility = 'visible';
	menu.style.display = 'block';
}
function closeMenu(menuId) {
var menu = document.getElementById(menuId);
if (menu)
    menu.style.visibility = 'hidden';
	menu.style.display = 'none';
}
//location (movement) commands
function del(desturl,question) {
	var answer;
	answer = confirm(question)
	if(answer)
	{
		location=desturl;
	}
}
function openImage(imageUrl,h,w) {
	var w = eval(w);
	var h = eval(h);
	if(!imgW) {
	var imgW = window.open(imageUrl,'M','width='+w+',height='+h+',toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,copyhistory=yes,resizable=yes');
	};
	imgW.location = imageUrl;
	imgW.focus();
}
//field functions
function fieldcounter(ctrl,msgid,maxlen) {
	if(document.getElementById(msgid)) 	{
		document.getElementById(msgid).innerHTML = ctrl.value.length + '/' + maxlen;
	}
	if(ctrl.value.length>=maxlen) {
		
		return false;
	}
	else {
		return true;
	}

}
function fieldcutter(ctrl,maxlen){
	if(ctrl.value.length>=maxlen){
		ctrl.value = ctrl.value.substring(1,maxlen)
	}
}
function submitenter(fieldid,e)
{
var keycode;
if (window.event) keycode = window.event.keyCode;
else if (e) keycode = e.which;
else return true;
if (keycode == 13) {
   fieldid.form.submit();
   return false;
   }
else
   return true;
}
function focusenter(fieldid,e,moveto)
{
var keycode;
if (window.event) keycode = window.event.keyCode;
else if (e) keycode = e.which;
else return true;
if (keycode == 13)
   {
   moveto.focus();
   return false;
   }
else
   return true;
}
//image zoom functions
var start = false;
var lx = 0;
var ly = 0;
var gx = 0;
var gy = 0;
var boffset = 2;
var xoff = 3;
var yoff = 0;
var bigimage = 'bigimage';
var glassname = 'lookingglass';
var smallimage = 'smallimage';
var lgheight = 0;
var lgwidth = 0;
var largewidth = 0;
var largeheight = 0;
var smallwidth = 0;
var smallheight = 0;
var mult = 0;
var looking = true;
var posX = 0;
var posY = 0;
var lrg;
var glass;
var sml;
function setzoomimage(viewerWidth,viewerHeight,largeImageWidth,largeImageHeight,smallImageWidth,smallImageHeight,largeImageSrc,smallImageSrc,bigimageid,lookingglassid,smallimageid)
{
	bigimage = bigimageid;
	glassname = lookingglassid;
	smallimage = smallimageid;
	document.onmousemove = followme;
	mult = largeImageWidth/viewerWidth;
	lgheight = parseInt(viewerHeight/mult);
	document.getElementById(glassname).style.height = lgheight + 'px';
	lgwidth = parseInt(viewerWidth/mult);
	document.getElementById(glassname).style.width = lgwidth + 'px';
	document.getElementById(bigimage).style.backgroundImage = "url('"+largeImageSrc+"')";
	document.getElementById(bigimage).style.width = viewerWidth + 'px';
	document.getElementById(bigimage).style.height = viewerHeight + 'px';
	document.getElementById(smallimage).src = smallImageSrc;
	yoff = parseInt((viewerWidth/mult)*-1);
	largewidth = largeImageWidth;
	largeheight = largeImageHeight;
	smallwidth = smallImageWidth;
	smallheight = smallImageHeight;
	xoff = (lgwidth/2)*-1;
	yoff = (lgheight/2)*-1;
	lrg = document.getElementById(bigimage);
	glass = document.getElementById(glassname);
	sml = document.getElementById(smallimage);
	posY = findPosY(sml);
	posX = findPosX(sml);
	lrg.style.left = parseInt(posX+smallwidth) + 'px';
	lrg.style.top = parseInt(posY) + 'px';
	glass.style.left = parseInt(posX) + 'px';
	glass.style.top = parseInt(posY) + 'px';
}
function mouseX(evt)
{
	if (!evt) 
		evt = window.event;
	if (evt.pageX)
		return evt.pageX;
	else if (evt.clientX)
		return evt.clientX + (document.documentElement.scrollLeft ?  document.documentElement.scrollLeft : document.body.scrollLeft);
	else return 0;
}
function mouseY(evt)
{
	if (!evt) evt = window.event;
	if (evt.pageY) 
		return evt.pageY;
	else if (evt.clientY)
		return evt.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
	else
		return 0;
}
function followme(evt)
{
	var x
	var y
	if (looking)
	{
		x = parseInt((posX-mouseX(evt)-xoff)*mult);

		y = parseInt((posY-mouseY(evt)-yoff)*mult);
	}
	
	if (y<0&&(y>((largeheight*-1)+parseInt(lgheight*mult)))){
		ly = y;
		gy = parseInt(mouseY(evt)+yoff+boffset);
		}
	if (x<0&&(x>((largewidth*-1)+parseInt(lgwidth*mult)))){
		lx = x;
		gx = parseInt(mouseX(evt)+xoff+boffset);
		}
		lrg.style.backgroundPosition = lx + 'px ' + ly + 'px';
		glass.style.top = gy + 'px';
		glass.style.left = gx + 'px';
}
function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
		else if (obj.x)
		curleft += obj.x;
		return curleft;
}
function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
	curtop += obj.y;
	return curtop;
}
function startlooking()
{	
	if(!start&&document.getElementById(smallimage)){

		start=true;
		openMenu(glassname);
		openMenu(bigimage);

	}
}
function stoplooking()
{
	if(document.getElementById(smallimage)){
		start=false;
		closeMenu(glassname);
		closeMenu(bigimage);
	}
}
function fadeIn(obj,opacity,max) {
	if (opacity <= max) {
	  setOpacity(obj, opacity);
	  opacity += 25;
	  window.setTimeout("fadeIn('"+obj+"',"+opacity+","+max+")", 10);
	}
}
function fadeOut(obj,opacity,min) {
	if (opacity >= min) {
	  setOpacity(obj, opacity);
	  opacity = opacity - 25;
	  window.setTimeout("fadeOut('"+obj+"',"+opacity+","+min+")", 10);
	}
	else
	{
		closeMenu(obj);
	}
}
function setOpacity(obj, opacity) {
	if(obj){
	  opacity = (opacity == 100)?99.999:opacity;
	  obj.style.filter = "alpha(opacity:"+opacity+")";
	  obj.style.KHTMLOpacity = opacity/100;
	  obj.style.MozOpacity = opacity/100;
	  obj.style.opacity = opacity/100;
  }
}
function menuMouseOut(event, o) {
var related;
if (event.relatedTarget)
	related = event.relatedTarget;
if (event.toElement)
	related = event.toElement;
if (!related)
	return;
var menu = getAncestorOrSelfByTagName(o, 'DIV');
if (!menu)
	return;
if (!isAncestorOrSelf(menu, related))
	if(document.getElementById(smallimage)){stoplooking();}
}
function isAncestorOrSelf(p, c) {
do {
	if (c == p)
	return true;
	c = c.parentNode;
} while (c);
return false;
}
function getAncestorOrSelfByTagName(o, tag) {
do {
	if (o.tagName == tag)
	return o;
	o = o.parentNode;
} while (o);
}
