/****************************************************************************************************
/ IMAGE SWAP FUNCTIONS
/******************************************************************************************************/

function imgSwap(oImg)
{
   var strOver  = "_RO";    // image to be used with mouse over
   var strOff = "_NORM";     // normal image
   var strImg = oImg.src;
   if (strImg.indexOf(strOver) != -1) 
      oImg.src = strImg.replace(strOver,strOff);
   else
      oImg.src = strImg.replace(strOff,strOver);
}
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];}
}

/****************************************************************************************/

// Open a popup window
function popup(page,width,height)
{
	window.open(page,'mapWin','scrollbars=1,width='+width+',height='+height+',toolbar=0,status=0,menubar=0,links=0,resizable=0,top='+((screen.height/2)-(height/2))+', left='+((screen.width/2)-(width/2)));
}

/******************************************************************************************/

function SelectAll(id)
{
    document.getElementById(id).focus();
    document.getElementById(id).select();
}

function toggle_display(id)
{
	document.getElementById(id).style.display = document.getElementById(id).style.display == "block" ? "none" : "block";
}

//turn <a> elements on or off
function disableAnchor(obj, disable)
{
	if(disable)
	{
		var href = obj.getAttribute("href");
		var onclick = obj.getAttribute("onclick");
		
		if(href && href != "" && href != null)
			obj.setAttribute('href_bak', href);
		if(onclick && onclick != "" && onclick != null)
			obj.setAttribute('onclick_bak', onclick);
		
		obj.removeAttribute('href');
		obj.setAttribute('onclick', '');
	}
	else
	{
		obj.setAttribute('href', obj.attributes['href_bak'].nodeValue);
		obj.setAttribute('onclick', obj.attributes['onclick_bak'].nodeValue);
	}
}

//prototype function to get elements by class name
document.getElementsByClassName = function(clsName){
    var retVal = new Array();
    var elements = document.getElementsByTagName("*");
    for(var i = 0;i < elements.length;i++){
        if(elements[i].className.indexOf(" ") >= 0){
            var classes = elements[i].className.split(" ");
            for(var j = 0;j < classes.length;j++){
                if(classes[j] == clsName)
                    retVal.push(elements[i]);
            }
        }
        else if(elements[i].className == clsName)
            retVal.push(elements[i]);
    }
    return retVal;
}

//////////FLASH FUNCTIONS////////////
function thisMovie(movieName) 
{
	var isIE = navigator.appName.indexOf("Microsoft") != -1;
	return (isIE) ? window[movieName] : document[movieName];
}

//put this outside of the page to get rid of active content border in IE6
function showflash(path, id, width, height)
{
	document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="'+width+'" height="'+height+'" id="'+id+'">'
          +'<param name="movie" value="'+path+'" />'
          +'<param name="quality" value="high" />'
		  +'<param name="allowScriptAccess" value="always" />'
          +'<embed src="'+path+'" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="'+width+'" height="'+height+'" name="'+id+'" swLiveConnect="true"></embed>'
		  +'</object>');
}

/******************************************************************************************/

//tabs functions

function toggle_tab(that,num,num_tabs)
{
	if(document.getElementById('nav_static'))
	{
		document.getElementById('nav_static').id = 'nav_link';
		that.id = 'nav_static';
	}
	
	//hide all the content of the tabs
	for(var i = 0; i < num_tabs; i++)
	{
		document.getElementById('tab_pane_'+i).style.display = 'none';	
	}
	
	//show the content of that tab
	document.getElementById('tab_pane_'+num).style.display = 'block';
}

/****************************************************************************************/

// forms

function selectItem(id,value)
{
	for (var i = 0; i < document.getElementById(id).options.length; i++) {
		if (document.getElementById(id).options[i].value == value)
			document.getElementById(id).options[i].selected = true;
	}
}

function handleEnter (event, form, optFun)
{
	var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
	if (keyCode == 13)
	{
		if (typeof optFun == "undefined")
			document.getElementById(form).submit();
		else
			optFun();
		return false;
	} 
	else
		return true;
}

function stopEnter(e)
{
     var key;     
     if(window.event)
          key = window.event.keyCode; //IE
     else
          key = e.which; //firefox     

     return (key != 13);
}

/*****************************************************
/	ajax functions
/****************************************************/

function ajaxGET(url,func,type) 
{
	var http_request = false;

	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
			// See note below about this line
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}

	if (!http_request) {
		alert('Giving up :( Cannot create an XMLHTTP instance');
		return false;
	}
	//http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	http_request.onreadystatechange = function() { getResponse(http_request,func,type); };
	http_request.open('GET', url, true);
	http_request.send(null);

}

function getResponse(http_request,func,type) 
{
	if (http_request.readyState == 4) 
	{
		if (http_request.status == 200) 
		{
			if(type == 'xml')
				func(http_request.responseXML.documentElement);
			else
				func(http_request.responseText);
		} 
		else
		{
			alert('There was a problem.');
		}
	}
}

/*****************************************************
/	allow only numbers or letter in input field
/***************************************************/

function allow_alpha(obj){
 if (/[^a-z]/i.test(obj.value))
  obj.value=obj.value.replace(/[^a-z]/gi,'')
  obj.value+=''
  obj.focus()
}

function allow_numeric(obj){
 if (/[^0-9]/i.test(obj.value))
  obj.value=obj.value.replace(/[^0-9]/g,'')
  obj.value+=''
  obj.focus()
}

function allow_alphaNumeric(obj){
 if (/[^\w]/i.test(obj.value))
  obj.value=obj.value.replace(/[^\w]/gi,'')
  obj.value+=''
  obj.focus()
}
/*
<p><input type="text" onkeyup="allow_alpha(this);" / size="20">alpha</p>
<p><input type="text" onkeyup="allow_numeric(this);" / size="20">numeric</p>
<p><input type="text" onkeyup="allow_alphaNumeric(this);" / size="20">alpha numeric</p>
*/

