var pageToAccess=null;
var layerToAccess=null;
var px ="px";
var content1_index = 0;
var content2_index = 0;
var pagecount_index = 0;
var header_index = 0;
var field;
var communeOK=true;

function ajaxManager()
	{
	var args = ajaxManager.arguments;
	var x = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP"): new XMLHttpRequest();
	switch (args[0])
		{
		case "load_page":
			if (x)
				{
				x.onreadystatechange = function()
					{
					if (x.readyState == 4 && x.status == 200)
						{
						var doc=document;
						el = doc.getElementById(args[2]);
						el.innerHTML = x.responseText;
						if (args[1].indexOf("aj=1")>-1) setTimeout(syncNavResults,1);						
						}
					}
				x.open("GET", args[1], true);
				x.send(null);
				}
			break;
		case "do_post":
			if (x)
				{
				x.onreadystatechange = function()
					{
					if (x.readyState == 4 && x.status == 200)
						{
						var doc=document;
						if (args[2]=="ContentLayer" || args[2]=="LoginLayer" || (args[2].indexOf("Data")!=-1)) {
							doc=document.getElementById("ContentFrame").contentWindow.document;
						}
						el = doc.getElementById(args[2]);
							el.innerHTML = x.responseText;
							//alert(el.innerHTML+"/"+x.responseText);
							var re=new RegExp("<script[^>]*src=\"([^\"]*)","gim");
							var uriParts=null;
							var scrs=new Array();
						    do {
								uriParts=null;
								uriParts = re.exec(x.responseText);
						    	if (uriParts) scrs.push(uriParts[1]);
							} while (uriParts);
							runScript(getElementsByClassName('scriptme',el),args[1],scrs);						
						}
					}
				x.open("POST", args[1], true);
				x.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
				x.send(args[3]);
				}
			break;							
		case "search":
 			if (trim(args[2])=="") {
					el = document.getElementById(args[3]);
					el.style.visibility="hidden";
					el.style.display="none";
			} else if (x)	{
				x.onreadystatechange = function()
					{
					if (x.readyState == 4 && x.status == 200)
						{
						el = document.getElementById(args[3]);
							el.innerHTML = x.responseText;
							el.style.visibility="visible";
							el.style.display="block";
							if (getObj("res0") && (getObj("res1")==null)) {
								window.location=getObj("res0").href;
							}
						}
					}
				x.open("GET", args[1]+"?q="+encodeURI(args[2]), true);
				x.send(null);
				}
			break;
		case "load_js":
			if (x)
				{
				x.onreadystatechange = function()
					{
					if (x.readyState == 4 && x.status == 200)
						{
						var getheadTag = document.getElementsByTagName('head')[0];
						setjs = document.createElement('script');
						setjs.setAttribute('type', 'text/javascript');
						getheadTag.appendChild(setjs);
						setjs.text = x.responseText;
						}
					}
				x.open("GET", args[1], true);
				x.send(null);
				}
			break;
		case "display_info":
			document.getElementById(args[2]).innerHTML = args[1];		
			break;
		case "start_up":
			resizeIFrame();
			break;
	}
}
var round2=false;

function getElementsByClassName( strClassName, obj ) {
    var ar = arguments[2] || new Array();
    var re = new RegExp("\\b" + strClassName + "\\b", "g");
    if ( re.test(obj.className) ) {
        ar.push( obj );
    }
    for ( var i = 0; i < obj.childNodes.length; i++ )
        getElementsByClassName( strClassName, obj.childNodes[i], ar );
    return ar;
}

function runScript(bg,basePath,scrs) {
			var headTag = document.getElementsByTagName('head')[0];
			loadedScrs=headTag.getElementsByTagName('SCRIPT');
			for (i=0;i<scrs.length;i++) {
//					writeError("Checking "+scrs[i]);
					var loaded=false;
					for (j=0;j<loadedScrs.length;j++) {
//						writeError(loadedScrs[j].src+"=="+scrs[i]);
						if (loadedScrs[j].src.indexOf(scrs[i])!=-1) loaded=true;
					}					 
					if (!loaded) {
					   var head = document.getElementsByTagName("head")[0];
					   var script = document.createElement('script');
					   script.id = 'uploadScript'+i;
					   script.type = 'text/javascript';
					   script.src = scrs[i];
					   head.appendChild(script)													
//						 writeError(scrs[i]+" not loaded");
					}
			}
			var doc=document;
			for (i=0;i<bg.length;i++) {
//				writeError("Script: "+bg[i]);
				//alert(bg[i]+"/"+bg[i].innerHTML);
				if (!bg[i].innerHTML) {
					 continue;					
				}
				sPres=bg[i].innerHTML;
				var getheadTag = document.getElementsByTagName('head')[0];
				setjs = document.createElement('script');
				setjs.setAttribute('type', 'text/javascript');
				getheadTag.appendChild(setjs);
				setjs.text = sPres;
				
/*				setjs = doc.createElement('script');
				setjs.setAttribute('type', 'text/javascript');
				setjs.text = sPres;
				//alert("re1");
				bg[i].parentNode.replaceChild(setjs, bg[i]);
				//alert("re2");
				*/
			}
}

 function getObj(name) {
   var d=document;
    if (d.all) { 
    	return d.all[name];
    }	else if(d.getElementById) {
     return d.getElementById(name);
     }
   }
function trim(str)
{
   return str.replace(/^\s*|\s*$/g,"");
}
function setRegion(id,name) {
	var doc=document;
	el=doc.getElementById("SearchLayer");
	el.style.visibility="hidden";
	el.style.display="none";
	doc.searchMask.communeName.blur();
	doc.searchMask.region.value=id;
	doc.searchMask.commune.value="";
	doc.searchMask.communeName.value=name;
	doc.searchMask.dist.value="";
	$("#distSlider").slider("option","value",0).hide();
	$("#distValue").html("").parent().parent().hide();
	communeOK=true;
	var el=document.getElementById("SearchLayer");
	el.style.visibility="hidden";
	el.style.display="none";
	updateResults();
}

function setCommune(id,name,c1,c2) {
	var doc=document;
	el=doc.getElementById("SearchLayer");
	el.style.visibility="hidden";
	el.style.display="none";
	doc.searchMask.communeName.blur();
	doc.searchMask.commune.value=id;
	doc.searchMask.region.value="";	
	doc.searchMask.communeName.value=name;
	doc.searchMask.dist.value=15;
	$("#distSlider").slider("option","value",15).show();
	$("#distValue").html("15 km").parent().parent().show();
	communeOK=true;
//	alert(doc.searchMask.communeName.value);
	var el=document.getElementById("SearchLayer");
	el.style.visibility="hidden";
	el.style.display="none";
	updateResults();
}

var listSel=-1;
var curSearch=null;

function search(e,ie,ctx){
	field=ie;	
	if (field.name!=curSearch) {
		el=getObj("SearchLayer");
		el.style.left=findPos(field)[0]+"px";
		el.style.top=(findPos(field)[1]+field.offsetHeight)+"px";
	}
	query=field.value;
	var keyPressed = e.charCode || e.keyCode;	
	if (e.keyCode==40) {
		el = getObj('res'+(listSel+1));
		if (el) {		
			curEl = getObj('res'+(listSel));
			if (curEl) curEl.className="";
			el.className="menuSel";
			listSel++;
		}
	}	else if (e.keyCode==38) {
		el = getObj('res'+(listSel-1));
		if (el) {		
			curEl = getObj('res'+(listSel));
			if (curEl) curEl.className="";
			el.className="menuSel";
			listSel--;
		}			
	}	else if (e.keyCode==13) {
		el = getObj('res'+listSel);
		if (el) window.location=el.href;
	} else {
		communeOK=false;
		ajaxManager('search',ctx+'searchCommunename.jsp',query,'SearchLayer');
	}
}	
String.prototype.capitalize = function(){ //v1.0
    return this.replace(/\w+/g, function(a){
        return a.charAt(0).toUpperCase() + a.substr(1).toLowerCase();
    });
};
function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

function remSpChar(field) {
	for (t=0;t<field.value.length;t++) {
	c=field.value.charAt(t);
	if (c=="\"") 
		return false;
	}
	return true;
}

function remSpChar2(field) {
	for (t=0;t<field.value.length;t++) {
	c=field.value.charAt(t);
	if (c=="\"") 
		return false;
	if (c==" ") 
		return false;
	if (c=="/") 
		return false;
	if (c=="\\") 
		return false;
	}
	return true;
}

function prepForm() {
	var f;
	if ((f=getContentObj('userEdit'))!=null) {	
		if (!remSpChar2(f.uid)) {
			alert("\nVous ne pouvez pas utiliser de caracteres speciaux dans les uid.");
			return false;
		}
		var immatt=f.immeublesattribues;  
		for (t=0;t<immatt.options.length;t++) {
			immatt.options[t].selected=true;
		}
		ajaxManager('do_post','user.jsp',"popUpData",getFormValues(f));
	}
}

function getFormValues(fobj,valFunc) {
       var str = "";
       var valueArr = null;
       var val = "";
       var cmd = "";
       for(var i = 0;i < fobj.elements.length;i++) {
           switch(fobj.elements[i].type) {
               case "text":
               case "password":
               case "hidden":
                    if(valFunc)
                    {
                        //use single quotes for argument so that the value of
                        //fobj.elements[i].value is treated as a string not a literal
                        cmd = valFunc + "(" + 'fobj.elements[i].value' + ")";
                        val = eval(cmd)
                    }
                    str += fobj.elements[i].name +
                     "=" + encodeURIComponent(fobj.elements[i].value) + "&";
                     break;
               case "select-one":
                    str += fobj.elements[i].name +
                    "=" + encodeURIComponent(fobj.elements[i].options[fobj.elements[i].selectedIndex].value) + "&";
                    break;
               case "select-multiple":
               	var ob=fobj.elements[i];
	           	for (var idx = 0; idx < ob.options.length; idx++) {
	            	if (ob.options[idx].selected) {
	                    str += ob.name +
	                    "=" + encodeURIComponent(ob.options[idx].value) + "&";
					}
				}
                break;
               case "checkbox":
               	var ob=fobj.elements[i];
				if(ob.checked) {
	                    str += ob.name +
	                    "=" + encodeURIComponent(ob.value) + "&";
				}
                break;
           }
       }
       str = str.substr(0,(str.length - 1));
       return str;
}

// Convert CH y/x to WGS lat
function CHtoWGSlat(y, x) {

  // Converts militar to civil and  to unit = 1000km
  // Axiliary values (% Bern)
  var y_aux = (y - 600000)/1000000;
  var x_aux = (x - 200000)/1000000;
  
  // Process lat
  lat = 16.9023892
       +  3.238272 * x_aux
       -  0.270978 * Math.pow(y_aux,2)
       -  0.002528 * Math.pow(x_aux,2)
       -  0.0447   * Math.pow(y_aux,2) * x_aux
       -  0.0140   * Math.pow(x_aux,3);
    
  // Unit 10000" to 1 " and converts seconds to degrees (dec)
  lat = lat * 100/36;
  
  return lat;
  
}

// Convert CH y/x to WGS long
function CHtoWGSlng(y, x) {

  // Converts militar to civil and  to unit = 1000km
  // Axiliary values (% Bern)
  var y_aux = (y - 600000)/1000000;
  var x_aux = (x - 200000)/1000000;
  
  // Process long
  lng = 2.6779094
        + 4.728982 * y_aux
        + 0.791484 * y_aux * x_aux
        + 0.1306   * y_aux * Math.pow(x_aux,2)
        - 0.0436   * Math.pow(y_aux,3);
     
  // Unit 10000" to 1 " and converts seconds to degrees (dec)
  lng = lng * 100/36;
     
  return lng;
  
}


