/**************************************************************************
** Nom du fichier : layer.js
** Créé le :    04/05/07               Par : JERRY
** Contenu : Fichier des fonctions javascripts 
**
**
** Modifications :
** numéro :			auteur : 				date : 
** objet :                                  le : 
**
***************************************************************************/

/********* AJAX **************/
var xhr = null;
function getXhr_arc(){
  if(window.XMLHttpRequest) // Firefox et autres
     xhr = new XMLHttpRequest();
  else if(window.ActiveXObject){ // Internet Explorer
     try {
        xhr = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (e) {
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
    	}
  }
  else { // XMLHttpRequest non supporté par le navigateur
     alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
     xhr = false;
  }
}
/******************************/

function verifdivaffiche(){
	idlegtype = $('legType').value;
	if(idlegtype != '')$(idlegtype).style.display = "block";  
	else $('singleSymbol').style.display = "block"
	
} 


function TabClick_arc(nTab,paramurl){
	showDiv_arc('singleSymbol', 'none');   
	showDiv_arc('graduateColor', 'none'); 
	showDiv_arc('graduateSymbol', 'none');
	showDiv_arc('singleValue', 'none');
	showDiv_arc('diagram', 'none');
	showDiv_arc(nTab, 'block');	
	parURL = paramurl+'ajax_arc.inc.php';
	param = 'action=selectLegendType&value='+nTab;   
	ajaxSend_arc(parURL,param);   
		switch(nTab){
	     case 'singleSymbol': 
	     	creatSymbol('symbunik','',paramurl);
	     break;
		}      
}

function ajaxSend_arc(parurl,param){
  getXhr_arc();
  // On défini ce qu'on va faire quand on aura la réponse
  xhr.onreadystatechange = function(){
    if(xhr.readyState == 4 && xhr.status == 200){ 
        var reponse = new Array();
        str = xhr.responseText ; 
        str = str.replace(/[\n\r\t]/g,'') ;
				//alert(str);   
        if(str != ''){
 					$('divWait_arc').style.display = 'none';
        	stravant = str.split("$$$$");
        	if(stravant.length == 2){
        		$(stravant[1]).innerHTML = "" ;
        		$(stravant[1]).innerHTML = stravant[0];
        	}else if(stravant.length == 1){  
	           reponse = stravant[0].split("££");
		         if(reponse.length == 2){
		            if(reponse[0] != '' && reponse[1] != ''){
	                idContainer = reponse[0];
	                sContent = reponse[1];
	                $(idContainer).innerHTML = sContent; 
		            }
		         }else{ 
		        	if(reponse[0] != '' && reponse[1] != '' && reponse[2] != '' && reponse[3] != ''){
		        		  $(reponse[0]).innerHTML = reponse[1];             
		              $(reponse[2]).innerHTML = reponse[3];             
		          }
		        }
		      }
        }            
    }
  }
  xhr.open("POST",parurl,true);
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	xhr.send(param);
}

function showDiv_arc(nomDiv, mode){
	if(cibleClass = $(nomDiv)) {
		cibleClass.style.display = mode ;
	}
}


function creatSymbol(param,field,paramurl){
	
	layernom = $('layerIndexModif').value; 
 	if(param == 'valunik'){
 		parURL = paramurl+'ajax_arc.inc.php';
 		paramx = 'layernom='+layernom+'&field='+field+'&group='+param;
 		if(field == 'Aucun'){
			$('unikfieldSymb').innerHTML = "";
			alert('vous deviez choisir un champ pour la classification');
			return;
		}
 	}else if(param == 'symbunik'){
 		parURL = paramurl+'ajax_arc.inc.php';
 		paramx = 'layernom='+layernom+'&group='+param;
 	}else if(param == 'symbGrad'){
 		parURL = paramurl+'ajax_arc.inc.php';
 		paramx = 'layernom='+layernom+'&field='+field+'&group='+param;
		methode = $('methodeHidden').value;
		nombreClass = $('nombreClassSaisieHidden').value;
		gradCol = $('gradColHidden').value;
		symbol = $('symbSymbolhidden').value;
		paramx += '&methode='+methode+'&nombreClass='+nombreClass+'&gradCol='+gradCol+'&symbol='+symbol; 
		if(field == 'Aucun'){
			$('symbcontenu').innerHTML = "";
			alert('vous deviez choisir un champ pour la classification');
			return;
		}
 	}else if(param == 'colorgrad'){
		parURL = paramurl+'ajax_arc.inc.php';
		paramx = 'layernom='+layernom+'&field='+field+'&group='+param;
		methode = $('methodeHidden').value;
		nombreClass = $('nombreClassSaisieHidden').value;
		gradCol = $('gradColHidden').value;
		paramx += '&methode='+methode+'&nombreClass='+nombreClass+'&gradCol='+gradCol;
		if(field == 'Aucun'){ 
			$('gradColorDispl').innerHTML = "";
			alert('vous deviez choisir un champ pour la classification');
			return;
		}
 	}
 	paramx += '&action=creatsymbol';
 	$('divWait_arc').style.display = 'block';
 	//alert(paramx);
 	ajaxSend_arc(parURL,paramx);
}

function transfertCode(param1,param2){
	r=$('rval').value;
	g=$('gval').value;
	b=$('bval').value;
	$(param1).style.backgroundColor = "rgb("+r+","+g+","+b+")";
 	$(param2).value = r+" "+g+" "+b;
}


function openClassif(slayerIndex,idLegType,idField,paramurl){
    parURL = paramurl+'classifForm.php?layerIndex='+slayerIndex;
    var sLegType = $(idLegType).value;
    switch(sLegType){
        case 'graduateColor':
            var sMethode = $('methodeHidden').value;
            var nbClass = $('nombreClassSaisieHidden').value;
            var sColor = $('gradColHidden').value;
            var sField = $(idField).value;
            parURL += '&value='+sLegType+'&field='+sField+'&methode='+sMethode+'&nombreClass='+nbClass+'&gradCol='+sColor; 
            break;  
         case 'graduateSymbol':
            var sMethode = $('methodeHidden').value;
            var nbClass = $('nombreClassSaisieHidden').value;
            var sColor = $('gradColHidden').value;
            var sField = $(idField).value;
            parURL += '&value='+sLegType+'&field='+sField+'&methode='+sMethode+'&nombreClass='+nbClass+'&gradCol='+sColor; 
            break;      
        default:
            break;
    } 
    openCadre_arc('cadre_classif','Gestion du classification des classes',220,315,220,200,parURL)   
} 

function verifyKeyPressInt(e){
	// Détéction des navigateurs
	var strUserAgent = navigator.userAgent.toLowerCase(); 
	var isIE = strUserAgent.indexOf("msie") > -1; 
	var isNS6 = strUserAgent.indexOf("netscape6") > -1; 
	var isNS4 = !isIE && !isNS6  && parseFloat(navigator.appVersion) < 5; 

	if (isIE) {
		iKeyCode = e.keyCode;
	} else {
		iKeyCode = e.which;		
	}
	//alert(iKeyCode);
	if (((iKeyCode >= 48) && (iKeyCode <=57)) || (iKeyCode == 40) || (iKeyCode == 41) || (iKeyCode == 32) || (iKeyCode == 8) || (iKeyCode == 0)){
		if (isIE){
			e.returnValue = true;
		}
		else{
			return true;
		}
	}
	else{		
		if (isIE){
			e.returnValue = false;
		}
		else{
			return false;
		}
	}	
}  


function avantcreatclassif(field,iddest,paramurl){
	$('methodeHidden').value = $('methode').value;
	$('nombreClassSaisieHidden').value = $('nombreClass').value;
	$('gradColHidden').value = $('gradCol').value;
	if(iddest == 'graduateSymbol')
		$('symbSymbolhidden').value = $('symbSymbol').value;
		fermer_arc('cadre_classif');
	if(field != 'Aucun'){
			if(iddest == 'graduateColor')creatSymbol('colorgrad',field,paramurl);  
			else if(iddest == 'graduateSymbol')creatSymbol('symbGrad',field,paramurl);   
	}

}

function postVal(classcur,parValue, parDiv){ 
	cibleRemplisage= $(parDiv) ;					
	cibleRemplisage.value = parValue ;
	if (classcur != '')$('idfond').className = classcur;
	 
}

function fermer_arc(cadreid) {
	Windows.getWindow(cadreid).close();
}

function checkallbox(div,tag,val){
	listSelect = $(div).getElementsByTagName('input');
	if($(val).checked == false){
   	for(iSel = 0; iSel < (listSelect.length); iSel++){
   		if(listSelect[iSel].getAttribute(tag,false) == "oka") {
       	listSelect[iSel].checked=false;
   		}       	
  	}
  }else{
   	for(iSel = 0; iSel < (listSelect.length); iSel++){
   		if(listSelect[iSel].getAttribute(tag,false) == "oka") {
       	listSelect[iSel].checked=true;
   		}       	
  	}
  }
}

function createNewClass_Arc(urlcompl) {
	var cont = parseInt($('comptage').value);
	if(cont < 4){  
		$('comptage').value = cont+1;
    strblock1 = " <input id=\"New_prevStyle"+cont+"\" type=\"button\" class=\"bordure1\" onclick=\"listTexturePoly('New_polyTextureLig"+cont+"')\"/>";
    strblock1 += " <input type=\"hidden\" id=\"New_symbolBordure"+cont+"\" name=\"New_symbolBordure[]\" value=\"line\"/>";
    
    strblock1 += "		<br><div id=\"New_polyTextureLig"+cont+"\" style=\"position:absolute;display:none;overflow:auto;width:65px;height:100px;margin-top:5px;background-color:#ffffff;border:1px solid #ccc\"  />";
		strblock1 += " 		<table border=\"0\" style=\"width:100%\" />";			
		strblock1 += "				<tr>";  
		strblock1 += "					<td><input type=\"button\" class=\"bordure1\" onclick=\"giveVal('line','New_prevStyle"+cont+"');sendSymbol('bordure1','line','New_symbolBordure"+cont+"','New_polyTextureLig"+cont+"','New_symbolBordure"+cont+"')\"/></td>";
		strblock1 += "				</tr>";	
		strblock1 += "				<tr>"; 
		strblock1 += "					<td><input type=\"button\" class=\"bordure2\" onclick=\"giveVal('dashed_point1','New_prevStyle"+cont+"');sendSymbol('bordure2','dashed_point1','New_symbolBordure"+cont+"','New_polyTextureLig"+cont+"','New_symbolBordure"+cont+"')\" /></td>";				
		strblock1 += "				</tr>";				
		strblock1 += "				<tr>";
		strblock1 += "					<td><input type=\"button\" class=\"bordure3\" onclick=\"giveVal('dashed_point2','New_prevStyle"+cont+"');sendSymbol('bordure3','dashed_point2','New_symbolBordure"+cont+"','New_polyTextureLig"+cont+"','New_symbolBordure"+cont+"')\"/></td>";				
		strblock1 += "				</tr>";				
		strblock1 += "				<tr>";
		strblock1 += "					<td><input type=\"button\" class=\"bordure4\" onclick=\"giveVal('dashed_point3','New_prevStyle"+cont+"');sendSymbol('bordure4','dashed_point3','New_symbolBordure"+cont+"','New_polyTextureLig"+cont+"','New_symbolBordure"+cont+"')\"/></td>";				
		strblock1 += "				</tr>";				
		strblock1 += "				<tr>";
		strblock1 += "					<td><input type=\"button\" class=\"bordure5\" onclick=\"giveVal('dashed_point4','New_prevStyle"+cont+"');sendSymbol('bordure5','dashed_point4','New_symbolBordure"+cont+"','New_polyTextureLig"+cont+"','New_symbolBordure"+cont+"')\"/></td>";				
		strblock1 += "				</tr>";
		strblock1 += "			</table>";
	  strblock1 += "		</div>";  
    
     
    strblock2 = "	<img src=\""+urlcompl+"images/picker.gif\" id=\"New_colorbordureextbgUnique"+cont+"\"  style=\"background-color:rgb(255,0,0)\" onClick=\"showPicker('New_colorbordureextbgUnique"+cont+"', 'New_colorbordureextUnique"+cont+"');\" >";
    strblock2 += "	<input name=\"New_colorbordureextUnique[]\" type=\"hidden\" id=\"New_colorbordureextUnique"+cont+"\" value=\"255 0 0\"/>";

    strblock3 = "	<input name=\"New_largeurbordurextUnique[]\" class=\"ifield\" type=\"text\" id=\"New_largeurbordurext"+cont+"\" value=\"2\" />";																		

    strblock4 = "	<input name=\"New_supprStyle[]\" type=\"checkbox\" class=\"icheck\" id=\"New_supprStyle"+cont+"\" value=\""+cont+"\" onclick=\"suppressiondirect(this,"+cont+")\"/>";																		

		var tmpTr = document.createElement('tr');
		var tmpTd1 = document.createElement('td');
		var tmpTd2 = document.createElement('td');
		var tmpTd3 = document.createElement('td');
		var tmpTd4 = document.createElement('td');
		
		tmpTd1.innerHTML = strblock1;
		tmpTd2.innerHTML = strblock2;
		tmpTd3.innerHTML = strblock3;
		tmpTd4.innerHTML = strblock4;

		tmpTr.appendChild(tmpTd1);
		tmpTr.appendChild(tmpTd2);
		tmpTr.appendChild(tmpTd3);
		tmpTr.appendChild(tmpTd4);
		
		$('newClassedit').appendChild(tmpTr);
  }
}

function suppressiondirect(obj,cont){
	$('comptage').value = cont;
	obj.parentNode.parentNode.parentNode.removeChild(obj.parentNode.parentNode);
}	


function addStyleInClass(compleUrl){
	veriftype = $('verifty').value;
  	sNameLayer = $('layerIndex').value;
  	idClass = $('numClass').value;
    var parURL = compleUrl+'ajax_arc.inc.php';
    var parama = 'action=addStyle&layerIndex='+sNameLayer+'&idClass='+idClass+'&veriftype='+veriftype; 
   var aTexture = loadAllData('symbolBordure');
    if(aTexture.length > 0){
        var sTexture = aTexture.join('µ');
        parama += '&texture='+sTexture;
    }
    var aColor = loadAllData('colorbordureextUnique');
    if(aColor.length > 0){
        var sColor = aColor.join('µ');
        parama += '&color='+sColor;  
    }  
    var aSize = loadAllData('largeurbordurext');
    if(aSize.length > 0){
        var sSize = aSize.join('µ');
        parama += '&size='+sSize;         
    }
    ajaxSend_arc(parURL,parama);
}

function transitsupprStyle(complUrl,valObj){
	numclass=$('numClass').value;
	layerIndex=$('layerIndex').value;
	supprStyle(complUrl,layerIndex, numclass,valObj);
}

function supprStyle(complUrl,slayerIndex, idClass, valObj){   
	veriftype = $('verifty').value; 
    var parURL = complUrl+'ajax_arc.inc.php';
    var parama = 'action=supprStyle&layerIndex='+slayerIndex+'&idClass='+idClass+'&veriftype='+veriftype;  
     var aTexture = loadAllData('symbolBordure');
    if(aTexture.length > 0){
        var sTexture = aTexture.join('µ');
        parama += '&texture='+sTexture;
    }
    var aColor = loadAllData('colorbordureextUnique');
    if(aColor.length > 0){
        var sColor = aColor.join('µ');
        parama += '&color='+sColor;  
    }
    var aSize = loadAllData('largeurbordurext');
    if(aSize.length > 0){
        var sSize = aSize.join('µ');
        parama += '&size='+sSize;         
    }
   /* var aStyle = getListSuppr('supprStyle'); 
    if(aStyle.length <= 0){
        alert("Veuillez cocher au moins un style");
    } else{
        var sStyle = aStyle.join('µ');*/
        parama += '&idStyleSuppr='+valObj;
        ajaxSend_arc(parURL,parama); 
    //}     
} 

function loadAllData(sIdPart){
    var iteration = 0;
    var aVal = new Array();
    while ($(sIdPart+iteration)){
        aVal.push($(sIdPart+iteration).value);
        iteration ++;
    }
    return aVal;
}

function openCadre_arc(divNomT,titleT,le,wi,he,to,UrlT){
	//if(divNomT == 'cadreGestionLayer'){
		var par = document.body;
	/*}else{
		 var par = Windows.getWindow('cadreGestionLayer').getContent();
	}*/
	gWindowz.calledAjaxContent(divNomT,{title:titleT,left:0,width:wi,height:he,top:to,parent:par},UrlT)
}

function showPicker(bagcol,textcol){
	var bg = $(bagcol).style.backgroundColor;
	if(bg == '' || bg == 'transparent'){
		bg = 'rgb(-1,-1,-1)';
	}
	var tab = bg.split(",");
	
	var a = tab[0].split("(");
	var c = tab[2].split(")");
	gPicker.called({
		initColor:{r:a[1],g:tab[1],b:c[0]},
		inputSet: $(textcol),
		imgSet: $(bagcol),
		left: '400px',
		top: '100px',
		zIndex: 2010
	});
}

function listTexturePoly(paramDiv){
	var polyList = $(paramDiv) ;
	if(polyList){
		polyList.style.display = "block" ;
	}
} 

function sendSymbol(classcur,parValue, parDiv, divContent, idReceiver){
	$(divContent).style.display = "none" ; 
	cibleRemplisage= $(parDiv) ;					
	cibleRemplisage.className = classcur;
	if (classcur != '')$(idReceiver).value = parValue;
}

function supprClass(urlplus,sIdPart, slayerIndex){    
    var parURL = urlplus+'ajax_arc.inc.php';
    var parama = 'action=supprClass&layerIndex='+slayerIndex; 
    var sLegType = $('legType').value;
    if(sLegType != '') parama += '&legType='+sLegType; 
    aNumClass = getListSuppr(sIdPart);
    if(aNumClass.length <= 0)   {
        alert("Veuillez cocher au moins une classe!!");
			return; 
    }else{
        var sListeClass = aNumClass.join('µ'); 
        parama += '&listeClass='+sListeClass;
        //alert(parama);
        ajaxSend_arc(parURL,parama);
    }
}

function getListSuppr(sIdPart){
    var iteration = 0;
    var aNumClass = new Array();
    while ($(sIdPart+iteration)){
        if($(sIdPart+iteration).checked == true)
            aNumClass.push($(sIdPart+iteration).value);
        iteration ++;
    }
    return aNumClass;
}

function giveVal(sVal,prevId){
    switch(sVal){
         case '': 
            sCSSClass = 'bordurevide';
         case 'line': 
            sCSSClass = 'bordure1';
            break;
        case 'dashed_point1': 
            sCSSClass = 'bordure2';
            break;
        case 'dashed_point2': 
            sCSSClass = 'bordure3';
            break;
        case 'dashed_point3': 
            sCSSClass = 'bordure4';
            break;
        case 'dashed_point4': 
            sCSSClass = 'bordure5';
            break;
    }
    $(prevId).className = sCSSClass; 
    //fermer_arc('cadre_icon_poly'); 
}

function valideEditLabel_arc(){
	size = $('editsize').value;
	fond = ($('editcolorfond').value == "")? "-1 -1 -1" : $('editcolorfond').value; 
	cont = $('editcolorcont').value;
	pos = $('editposition').value;
	contour = $('editcolorcontour').value;

	polce = $('editpolice').value;
		
	minscale = $('arclabMinscale_').value;
	maxscale = $('arclabMaxscale_').value;
	
	minscale = (minscale.replace(/^\s+|\s+$/g,'') == '')? '-1' : minscale;
	maxscale = (maxscale.replace(/^\s+|\s+$/g,'') == '')? '-1' : maxscale;
	
	$('sizelabelcla').value = size;
	$('fontcollabelcla').value = fond;
	$('outcollabelcla').value = cont;
	$('poslabelcla').value = pos;
	$('contourlabelcla').value = contour;

	$('policelabelcla').value = polce;

	$('arclabMinscale').value = minscale;
	$('arclabMaxscale').value = maxscale;

	fermer_arc('cadre_icon_editLabel');
}


function transparenceCouche() {
	tp = (arguments[0])? arguments[0] : '-';
	vl = parseInt($('arc_transparence').value);
	if(tp == '-') {
		$('arc_transparence').value = vl - 1;
	}else {
		$('arc_transparence').value = vl + 1;
	}
}

function selectOptionByValue(seli,val) {
	sel = $(seli);
	if(!sel) return;
	for(var iSe=0; iSe < sel.options.length; iSe++) {
		if(sel.options[iSe].value == val)
			return sel.options[iSe];
	}
	if(sel.selectedIndex && sel.selectedIndex >= 0)
		return sel.options[sel.selectedIndex];
	if(sel.options[0])
		return sel.options[0];
	return false;
}


function valideLayerForm() {
	var strV = "------";
	var sField = "------";
	if($('graduateColor').style.display == 'block') {
		//graduateColor
		strV = $('gradColorDispl').innerHTML.toString();
		strV = (!/<[a-z]{1,}>/i.test(strV))? '' : strV;
    sField = $('colorGrad').value;
	}
	else if($('graduateSymbol').style.display == 'block') {
		//graduateSymbol
		strV = $('symbcontenu').innerHTML.toString();
		strV = (!/<[a-z]{1,}>/i.test(strV))? '' : strV;
    sField = $('symbolGrad').value;
	}
	else if($('singleValue').style.display == 'block') {
		//singleValue
		strV = $('unikfieldSymb').innerHTML.toString();
		strV = (!/<[a-z]{1,}>/i.test(strV))? '' : strV;
    sField = $('unikValSymb').value;
	}
	
	strV = strV.replace(/^\s+|\s+$/g,'');
	sField = sField.replace(/^\s+|\s+$/g,'');
	if(strV == '' || sField == '') {
		alert('Vous deviez choisir une valeur pour la classification');
		return;
	}
	$('form_layerForm').submit();	
}