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_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_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];}
}

var NewWind
function makeA(url,w,h)
{
  if (NewWind && !NewWind.closed) 
  {
      NewWind.close()
  }
  params = ""
  params += "resizable=1,scrollbars=1,"
  params += "width=" + w + ","
  params += "height=" + h
  NewWind = window.open(url, "" , params);
}

function makeB(url,w,h)
{
  window.open(url, "_blank");
}

function chkFields(s_ids) {
	var a = s_ids.split("`");
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i

	for (i = 0; i < a.length; i += 2) {
		var oE = document.all.item(a[i + 1]);
		if (oE) {
			sV = oE.value;
			if (!(sV.match(/^\s*\w+/))) {
				alert('Please check field "' +  a[i] + '"');
				oE.focus();
				return false;
			} else {
				if (a[i + 1].indexOf("phone") > -1) {
					if (isNaN(sV)) {
						alert('Please check field "' +  a[i] + '": Wrong Phone format.');
						oE.focus();
						return false;
					}
				}

				if (a[i + 1].indexOf("email") > -1) {
					if (filter.test(sV)){
					
					} else {
						alert('Please check field "' +  a[i] + '": Wrong Email format.');
						oE.focus();
						return false;

					}
				}
			}
			
		}
	}
	return true;
}

function getStyleObject(objectId) {
    // cross-browser function to get an object's style object given its id
    if(document.getElementById && document.getElementById(objectId)) {
	// W3C DOM
	return document.getElementById(objectId).style;
    } else if (document.all && document.all(objectId)) {
	// MSIE 4 DOM
	return document.all(objectId).style;
    } else if (document.layers && document.layers[objectId]) {
	// NN 4 DOM.. note: this won't find nested layers
	return document.layers[objectId];
    } else {
	return false;
    }
} // getStyleObject

function changeObjectVisibility(objectId, newVisibility) {
    // get a reference to the cross-browser style object and make sure the object exists
    var styleObject = getStyleObject(objectId);
    if(styleObject) {
	styleObject.visibility = newVisibility;
	return true;
    } else {
	// we couldn't find the object, so we can't change its visibility
	return false;
    }
} // changeObjectVisibility

function moveObject(objectId, newXCoordinate, newYCoordinate) {
    // get a reference to the cross-browser style object and make sure the object exists
    var styleObject = getStyleObject(objectId);
    if(styleObject) {
	styleObject.left = newXCoordinate;
	styleObject.top = newYCoordinate;
	return true;
    } else {
	// we couldn't find the object, so we can't very well move it
	return false;
    }
} // moveObject

var xOffset = 30;
var yOffset = -5;

function showPopup (targetObjectId, eventObj) {
    if(eventObj) {
	// hide any currently-visible popups
	hideCurrentPopup();
	// stop event from bubbling up any farther
	eventObj.cancelBubble = true;
	// move popup div to current cursor position 
	// (add scrollTop to account for scrolling for IE)

//	var newXCoordinate = (eventObj.pageX)?eventObj.pageX + xOffset:eventObj.x + xOffset + ((document.body.scrollLeft)?document.body.scrollLeft:0)-100;
	newXCoordinate = 50;

	var newYCoordinate = (eventObj.pageY)?eventObj.pageY + yOffset:eventObj.y + yOffset + ((document.body.scrollTop)?document.body.scrollTop:0)+20;
	moveObject(targetObjectId, newXCoordinate, newYCoordinate);
	// and make it visible
	if( changeObjectVisibility(targetObjectId, 'visible') ) {
	    // if we successfully showed the popup
	    // store its Id on a globally-accessible object
	    window.currentlyVisiblePopup = targetObjectId;
	    return true;
	} else {
	    // we couldn't show the popup, boo hoo!
	    return false;
	}
    } else {
	// there was no event object, so we won't be able to position anything, so give up
	return false;
    }
} // showPopup

function hideCurrentPopup() {
    // note: we've stored the currently-visible popup on the global object window.currentlyVisiblePopup
    if(window.currentlyVisiblePopup) {
	changeObjectVisibility(window.currentlyVisiblePopup, 'hidden');
	window.currentlyVisiblePopup = false;
    }
} // hideCurrentPopup



// ***********************
// hacks and workarounds *
// ***********************

// initialize hacks whenever the page loads
window.onload = initializeHacks;

// setup an event handler to hide popups for generic clicks on the document
document.onclick = hideCurrentPopup;

function initializeHacks() {
    // this ugly little hack resizes a blank div to make sure you can click
    // anywhere in the window for Mac MSIE 5
    if ((navigator.appVersion.indexOf('MSIE 5') != -1) 
	&& (navigator.platform.indexOf('Mac') != -1)
	&& getStyleObject('blankDiv')) {
	window.onresize = explorerMacResizeFix;
    }
    resizeBlankDiv();
    // this next function creates a placeholder object for older browsers
    createFakeEventObj();
}

function createFakeEventObj() {
    // create a fake event object for older browsers to avoid errors in function call
    // when we need to pass the event object to functions
    if (!window.event) {
	window.event = false;
    }
} // createFakeEventObj

function resizeBlankDiv() {
    // resize blank placeholder div so IE 5 on mac will get all clicks in window
    if ((navigator.appVersion.indexOf('MSIE 5') != -1) 
	&& (navigator.platform.indexOf('Mac') != -1)
	&& getStyleObject('blankDiv')) {
	getStyleObject('blankDiv').width = document.body.clientWidth - 20;
	getStyleObject('blankDiv').height = document.body.clientHeight - 20;
    }
}

function explorerMacResizeFix () {
    location.reload(false);
}

function openwin(link, w, h){
	var winfeatures="width=" + w + ",height=" + h + ",scrollbars=1,resizable=1,toolbar=0,location=0,menubar=0,status=1,directories=0";
	nw=window.open(link,"",winfeatures);
	nw.moveTo((screen.width-w)/2,(screen.height-h)/2);
}

var speed=1; 
var moveevent = null;

function movedown(s_cnt){
	stopmove();
	var moveobj=document.getElementById? document.getElementById(s_cnt) : eval("document.all." + s_cnt);
	var iheight=moveobj.offsetHeight;
	if (parseInt(moveobj.style.top)>=(iheight*(-1)+100)) {
		moveobj.style.top=parseInt(moveobj.style.top)-speed+"px";
		moveevent=setTimeout("movedown('" + s_cnt + "')",20)
	}
}

function moveup(s_cnt){
	stopmove();
	var moveobj=document.getElementById? document.getElementById(s_cnt) : eval("document.all." + s_cnt);
	var iheight=moveobj.offsetHeight;
	if (parseInt(moveobj.style.top)<=0) {
		moveobj.style.top=parseInt(moveobj.style.top)+speed+"px";
		moveevent=setTimeout("moveup('" + s_cnt + "')",20);
	}
}

function stopmove() {
	if (moveevent) {
		clearTimeout(moveevent); moveevent = null;
	}
}
