/*

The following lines of code create the DOMParser object if it doesnt exist.
This patch is used for IE and Safari.
The functionality is to use client side XML (in ajax even)

*/
if (typeof DOMParser == "undefined") {
   DOMParser = function () {}

   DOMParser.prototype.parseFromString = function (str, contentType) {
      if (typeof ActiveXObject != "undefined") {

         var d = new ActiveXObject("MSXML.DomDocument");
         d.loadXML(str);
         return d;
      } else if (typeof XMLHttpRequest != "undefined") {
         var req = new XMLHttpRequest;

         req.open("GET", "data:" + (contentType || "application/xml") +
                         ";charset=utf-8," + encodeURIComponent(str), false);
         if (req.overrideMimeType) {
            req.overrideMimeType(contentType);
         }
         req.send(null);
         return req.responseXML;
      }
   }
}
/*
End patch
*/


var xml="";
var CurrentFullPath = window.location.pathname;
var CurrentPage = CurrentFullPath.substring(CurrentFullPath.lastIndexOf('/') + 1);
function SendAjax(Params){
	xml = null;
	
	
	if (window.XMLHttpRequest){
		xml=new XMLHttpRequest();
	} else if (window.ActiveXObject){
		xml=new ActiveXObject("Microsoft.XMLHTTP");
	}
	xml.onreadystatechange=ChangedState;
	xml.open("POST","ProcessAjax.php",true);
	xml.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	xml.setRequestHeader("Content-Length", "0");
	xml.send(Params);
}

function ChangedState(){
	//alert('here');
	if (xml.readyState==4){
		//alert(xml.responseText);
		if (xml.status==200){
			eval(xml.responseText);
		}
		else{
			alert("Problem retrieving XML data");
		}
	}
}

function ShowHide(ElementID){
	var objRef = document.getElementById(ElementID);
	if(objRef.style.display == 'block'){
		objRef.style.display = 'none';
	} else {
		objRef.style.display = 'block';
	}
}

function ProcessNavElement(HeaderID, ElementsID){
	for(var i=0; i<Navs.length; i++){
		if(Navs[i]!=ElementsID){
			document.getElementById(Navs[i]).style.display='none';
		}
	}
	var left = document.getElementById(HeaderID).offsetLeft;
	var top = document.getElementById(HeaderID).offsetTop;
	var height = document.getElementById(HeaderID).offsetHeight;
	var objRef = document.getElementById(ElementsID);
	
	if(parseInt(top)<10){
		top = 60;
	}
	
	//alert(navigator.appName+' '+parseFloat(navigator.appVersion));
	
	if (navigator.appName == "Microsoft Internet Explorer" && parseFloat(navigator.appVersion)<7){
		top = top + 5;
		left = left + 15;
		//alert('in here');
	}
	
	objRef.style.top = (parseInt(top) + parseInt(height))+'px';
	
	objRef.style.left = left+'px';
	ShowHide(ElementsID);
	
}

function NavigationShiftLeft(){
	
	for(var i=0; i<Navs.length; i++){
		document.getElementById(Navs[i]).style.display='none';
	}
	
	var Max = parseInt(document.getElementById('HiddenNavigationGroupNumber').value);
	var Current = parseInt(document.getElementById('HiddenNavigationGroupIndex').value);
	
	//alert('Max: '+Max);
	//alert('Current: '+Current);

	if(Max>0 && Current!=0){
		document.getElementById('NavElement'+(Current-1)).style.display = 'inline';
		document.getElementById('NavElement'+(Current+6)).style.display = 'none';
		document.getElementById('HiddenNavigationGroupIndex').value = (Current-1);
	}
	
	
}

function NavigationShiftRight(){
	
	for(var i=0; i<Navs.length; i++){
		document.getElementById(Navs[i]).style.display='none';
	}
	
	var Max = parseInt(document.getElementById('HiddenNavigationGroupNumber').value);
	var Current = parseInt(document.getElementById('HiddenNavigationGroupIndex').value);

	if(Max>0 && Current!=(Max-7)){
		document.getElementById('NavElement'+(Current)).style.display = 'none';
		document.getElementById('NavElement'+(Current+7)).style.display = 'inline';
		document.getElementById('HiddenNavigationGroupIndex').value = (Current+1);
	}
}

function LoadFormIntoRequest(FormID){
	var form = document.getElementById(FormID);
	var str = '';
	
	for(var i=0; i<form.elements.length; i++){
		if(form.elements[i].name!=''){
			switch(form.elements[i].type){
				case 'checkbox':
				case 'radio':
					if(form.elements[i].checked){
						str+='&'+escape(form.elements[i].name)+'='+escape(form.elements[i].value);
					}
					break;
				case 'select-one':
				case 'select-multiple':
					for(var j=form.elements[i].options.length-1;j>=0;j--) {
						//alert('options1');
						if(form.elements[i].options[j].selected) {
							lastSelected = j;
							str+='&'+escape(form.elements[i].name)+'='+escape(form.elements[i].options[j].value);
							//alert('options2')
							break;
						}
					}
	
					break;
				case 'submit':
				case 'file':
					break;
				default:
					str+='&'+escape(form.elements[i].name)+'='+escape(form.elements[i].value);
					break;
			}
		}
	}
	
	return str;
}

function ValidateClassForm(FormID, NavGroup, NavElement, ClassName){
	var requestVars = LoadFormIntoRequest(FormID);
	//alert('Function=Validate+Class&NavGroup='+escape(NavGroup)+'&NavElement='+escape(NavElement)+'&ClassName='+ClassName+requestVars);
	SendAjax('Function=Validate+Class&FormName='+escape(FormID)+'&NavGroup='+escape(NavGroup)+'&NavElement='+escape(NavElement)+'&ClassName='+ClassName+requestVars);
}