Revert "converting CRLF to LF"
[geo.git] / edit_wp5_web_folder / v1.2_dev / function_rest_gen.php
diff --git a/edit_wp5_web_folder/v1.2_dev/function_rest_gen.php b/edit_wp5_web_folder/v1.2_dev/function_rest_gen.php
new file mode 100644 (file)
index 0000000..14df05f
--- /dev/null
@@ -0,0 +1,3344 @@
+<?php\r
+\r
+\r
+function fct_rest_gen(\r
+//1\r
+$p_uri, \r
+//2\r
+$p_legend, \r
+//3\r
+$p_bck_layer, \r
+//4\r
+$p_areas_data, \r
+//5\r
+$p_areas_style, \r
+//6\r
+$p_size, \r
+//7\r
+$p_bbox, \r
+//8\r
+$p_occ_data, \r
+//9\r
+$p_occ_style, \r
+//10\r
+$p_title, \r
+//11\r
+$p_label, \r
+//12\r
+$p_img_url, \r
+//13\r
+$p_symbols, \r
+//14\r
+$p_recalculate, \r
+//15\r
+$p_foo, \r
+//16\r
+$p_callback, \r
+//17\r
+$p_img, \r
+//18\r
+$p_externalwms, \r
+//19\r
+$p_externalwms_layer, \r
+//20\r
+$p_externalwms_versions, \r
+//21\r
+$p_externalwms_style, \r
+//22\r
+$p_externalwms_filter, \r
+//23\r
+$p_mlp, \r
+//24\r
+$p_grayscale, \r
+//25\r
+$p_jsoncreatefile, \r
+//26\r
+$p_raster, \r
+//27\r
+$p_wms_foreground,\r
+//28\r
+$p_dest_epsg_projection,\r
+//29\r
+$p_no_header_for_tests=FALSE\r
+)\r
+{\r
+\r
+//print($p_wms_foreground);\r
+//print($p_externalwms_filter);\r
+                               //ftheeten 2013/01/11\r
+                               //error_reporting(0);\r
+\r
+                               //ob_start();\r
+                               $conn = pg_pconnect(POSTGIS_CS);\r
+                               $flagError=false;\r
+                               $errorMessages=array();\r
+                               \r
+                               $flagDisplayPoints=false;\r
+                               //ftheeten 24/01/2013\r
+                               $arrayWMSIdxURLs=parseWMS($p_externalwms, $p_externalwms_versions, $p_externalwms_filter);\r
+                               $convertedCoordinates=array();\r
+                               //test ftheeten 14/03/2011\r
+                               //$path_towrite_persistent_sld="/var/www/synthesys/www/v1/sld_persistent/";\r
+                               //$url_persistent_sld='http://edit.br.fgov.be/synthesys/www/v1/sld_persistent';\r
+                               //topp: used in the name of the SLD file to address the layer to color\r
+                               \r
+                               $prefix_wms="topp:";\r
+                               \r
+                               $ls_string=NULL;\r
+                               $title_external=NULL;\r
+                               $title=NULL;\r
+                               $layer=NULL;\r
+                               $field=NULL;\r
+                               $label_field=NULL;\r
+                               $label=NULL;    \r
+                               $random=md5($p_uri .get_current_user()).".sld";\r
+                               $sessionid=$random;\r
+                               $legend_url=NULL;\r
+                               $sld_url=NULL;\r
+                               $geo=NULL;\r
+                               $ratio_y=NULL;\r
+                               $leg=$p_legend;\r
+                               \r
+                               \r
+                               //bug 16/04/2010 (pb with imagemagick package in filename?)\r
+                               $image_radical=md5($p_uri .get_current_user());\r
+                               $image_file=$image_radical."_layers.png";\r
+                               \r
+                               $random2=V1_IMG.$image_file;\r
+                               \r
+                               $random2_www=V1_URL."/".$image_file;\r
+                               $random2_legend=V1_IMG.$image_radical."_legend.png";\r
+                               //ftheeten 22/02/2011 (sometimes bug if image previously exists)\r
+                                       if(file_exists($random2))\r
+                                       {\r
+                                               unlink($random2);\r
+                               \r
+                                       }\r
+                               \r
+                                       if(file_exists($random2_legend))\r
+                                       {\r
+                                               unlink($random2_legend);\r
+                               \r
+                                       }\r
+                               \r
+                               \r
+                               \r
+                               \r
+                               //print($random2);\r
+                               \r
+                               \r
+                               \r
+                               $sld_dir = "/var/www/synthesys/www/v1/sld"; \r
+                               \r
+                               $img_dir = "/var/www/synthesys/www/v1/img";\r
+                               \r
+                               \r
+                               \r
+                               $d = dir($sld_dir);\r
+                               \r
+                               $e = dir($img_dir);\r
+                               \r
+                               \r
+                               \r
+                               $ad=$p_areas_data;\r
+                               \r
+                               \r
+                               \r
+                               \r
+                               \r
+                               //ftheeten 14/04/2011\r
+                               \r
+                               //$layers=$p_bck_layer;\r
+                               $layers_tmp=$p_bck_layer;\r
+                               $arrayTableStyles=associate_layer_to_style($layers_tmp,',',':', TRUE);\r
+                               $layers=array_keys($arrayTableStyles);\r
+                               //$layers=implode(',',array_keys($arrayTableStyles));\r
+                               \r
+                               if ( ($p_areas_data ==null && $p_occ_data==null )or ($p_areas_style == null && $p_occ_style==null) or $p_size == null)\r
+                               \r
+                               {\r
+                               \r
+                                       print("<br>");\r
+                               \r
+                                       print("<br>");\r
+                               \r
+                                       print("<b>The URL must be missing some values, or they have been wrongly defined.</b><br>");\r
+                               \r
+                                       print("<br>");\r
+                               \r
+                                       print("<b>Make sure you use the following syntax when adding the variables</b><br>");\r
+                               \r
+                                       print("Eg. http://edit.br.fgov.be/edit_wp5/v1/areas.php<b>?</b>*Layers<b>&</b>Area Data<b>&</b>Area Style<b>&</b>*Bounding Box<b>&</b>Map Size<br>");\r
+                               \r
+                                       if ($layers==null)\r
+                               \r
+                                       {\r
+                               \r
+                                               print("<br>");\r
+                               \r
+                                               print("<b>*Layers (l=) has not been defined</b><br>");\r
+                               \r
+                                               print("This defines the background layer.<br>");\r
+                               \r
+                                               print("Eg. l=earth will give your map a backgound of the full earth map with only country data.<br>");\r
+                               \r
+                                               print("where l=tdwg4 will make the earth your background as well but with the tdwg layer 4 areas defined.<br>");\r
+                               \r
+                                               print("The only options are earth, tdwg1, tdwg2, tdwg3, tdwg4.<br>");\r
+                               \r
+                                       }\r
+                               \r
+                                       if ($p_areas_data==null)\r
+                               \r
+                                       {\r
+                               \r
+                                               print("<br>");\r
+                               \r
+                                               print("<b>Area Data (ad=) has not been defined</b><br>");\r
+                               \r
+                                               print("This is to determin which areas will be symbolized specifically on the map in the format ad=layer name:a:area code1|b:area code2 etc<br>");\r
+                               \r
+                                               print("You can have information form more then one layer defined by using || as a seperator<br>");\r
+                               \r
+                                               print("Eg ad=layer1 name:a:area code1|b:area code2||layer2 name:c:area code1|d:area code2<br>");\r
+                               \r
+                                               print("The layers can only be earth, <a href=\"tdwgLevel1.html\">tdwg1</a>, <a href=\"tdwgLevel2.html\">tdwg2</a>, <a href=\"tdwgLevel3.html\">tdwg3</a> or <a href=\"tdwgLevel4.html\">tdwg4</a>. Click on the name to see a list of the area codes.<br>");\r
+                               \r
+                                       }\r
+                               \r
+                                       if ($p_bbox==null)\r
+                               \r
+                                       {\r
+                               \r
+                                               print("<br>");\r
+                               \r
+                                               print("<b>*Bounding Box (bbox=) has not been defined</b><br>");\r
+                               \r
+                               print("Bounding box defines the viewing area within the map.<br>");\r
+                               \r
+                               print("The numbers are based on Long/Lat coordinates <br>bbox=minX(minimum point Longtitude),minY(minimum point Latitude),maxX,maxY<br> Eg. bbox=13,-13,31,5 will give you a map showing the Democratic Republic of Congo.<br>");\r
+                               \r
+                                               print("bbox=-180,-90,180,90 is the full world view<br>");\r
+                               \r
+                                               print("If Bounding box is not defined the map will default to the  extent of the area data being requested (ad=)<br>");\r
+                               \r
+                                       }\r
+                               \r
+                                       if ($p_size==null)\r
+                               \r
+                                       {\r
+                               \r
+                                               print("<br>");\r
+                               \r
+                                               print("<b>Map Size (ms=) has not been defined</b></br>");\r
+                               \r
+                                               print("This defines the size of the map that will be displayed.<br>It can be only a single number representing the width of the image. The height is that number divided by 2.<br>eg. ms=1000 will give you a width of 1000 and a height of 500.<br>");\r
+                               \r
+                                               print("Or it can be ms=width,height where you assign both values.<br>");\r
+                               \r
+                                       }\r
+                               \r
+                                       if ($p_areas_style==null)\r
+                               \r
+                                       {\r
+                               \r
+                                               print("<br>");\r
+                               \r
+                                               print("<b>Area Style (as=) has not been defined</b><br>");\r
+                               \r
+                                               print("This defines the Area Data called earlier and fills in the color and optionally the border size and color<br>");         \r
+                               \r
+                                               print("Eg as=a:00ff00 will make the ad (area data) defined by a: the color green<br>");\r
+                               \r
+                                               print("If you wish to do more then just color:<br>");\r
+                               \r
+                                               print("Eg as=b:ff0000,0000ff,2 will make the ad (area data) defined by b: the color red (ff0000) and draw am outline with the width of 2 around its borders in the color blue (0000ff).<br>");\r
+                               \r
+                                               print("If you want to assign only a value (without changing the color) for border you must still format it like this<br>");\r
+                               \r
+                                               print("as=c:ffffff,0,4 This will make the ad (area data) defined by c: the white (ffffff) and draw am outline with the width of 4 around it.<br>");\r
+                               \r
+                                       }\r
+                               \r
+                               print("<br><br>");\r
+                               \r
+                               print("<b>*</b> Items are optional<br>");\r
+                               \r
+                               print("<b>Please refer to the wiki for how to setup the service:</b><br>");\r
+                               \r
+                               print("<b><a href=\"http://dev.e-taxonomy.eu/trac/wiki/MapRestServiceApi#Areas\">Wiki</a></b><br>");\r
+                               \r
+                               }\r
+                               \r
+                               else\r
+                               \r
+                               {\r
+                               //point part\r
+                               \r
+                               $od=$p_occ_data;\r
+                               \r
+                               $points=explode('||',$od);\r
+                               \r
+                               $geodata=array();\r
+                               \r
+                               \r
+                               \r
+                               foreach ($points as $k=>$v)\r
+                               \r
+                               {\r
+                               \r
+                                       $specie=explode(":",$v);\r
+                               \r
+                                       //id of the recordset\r
+                               \r
+                                       $id=$specie[0];\r
+                               \r
+                                       //geodata of each recordset\r
+                                       if(isset($specie[1]))\r
+                                       {\r
+                                               $geo=explode('|',$specie[1]);\r
+                                               foreach ($geo as $key=>$value)\r
+                               \r
+                                               {\r
+                                                       $geos=explode(',',$value);\r
+\r
+                                                       if(count($geos)>=2&&strlen($geos[0])>0&&strlen($geos[1])>0)\r
+                                                       {\r
+                                                       \r
+                               \r
+                                                               $geodata[$id]['geodata']['lon'][]=$geos[1];                             \r
+                                                               $geodata[$id]['geodata']['lat'][]=$geos[0];\r
+                                                       }\r
+                                               \r
+                               \r
+                                               }\r
+                                       }\r
+                                       \r
+                               \r
+                               }\r
+\r
+\r
+                               \r
+                               \r
+                               \r
+                               //$os="1:c/f78755/10/Onthophagus semipunctatus|2:s/64cb48/15/Euoniticellus pallipes|3:sq/090b0a/30/Onthophagus joannae";\r
+                               \r
+                               \r
+                               \r
+                               $os=$p_occ_style;\r
+                               \r
+                               $sp=explode('|',$os);\r
+                               \r
+                               $species=array();\r
+                               \r
+                               \r
+                               foreach ($sp as $k=>$v)\r
+                               \r
+                               {\r
+                               \r
+                                       if(strlen($v)>0)\r
+                               \r
+                                       {\r
+                               \r
+                                               $sym=explode(':',$v);\r
+                               \r
+                               \r
+                               \r
+                                               $specie_id=$sym[0];     \r
+                               \r
+                                               $symbologies=explode('/',$sym[1]);\r
+                                               if(count($symbologies)<=4)\r
+                                               {\r
+               \r
+                                                       $geodata[$specie_id]['symbol']=$symbologies[0];\r
+                               \r
+                                                       $geodata[$specie_id]['color']=$symbologies[1];\r
+                               \r
+                                                       $geodata[$specie_id]['size']=$symbologies[2];\r
+                               \r
+                                                       $geodata[$specie_id]['legend']=$symbologies[3];\r
+                                               }\r
+                                               else//ftheeten 03/02/2011 (transparency, thickness, outline color)\r
+                                               {\r
+                                                       $geodata[$specie_id]['symbol']=$symbologies[0];\r
+                               \r
+                                                       $geodata[$specie_id]['color']=$symbologies[1];\r
+                               \r
+                                                       $geodata[$specie_id]['size']=$symbologies[2];\r
+\r
+                                                       $geodata[$specie_id]['outlinecolor']=$symbologies[3];\r
+\r
+                                                       $geodata[$specie_id]['linewidth']=$symbologies[4];\r
+\r
+                                                       $geodata[$specie_id]['opacity']=$symbologies[5];\r
+                               \r
+                                                       $geodata[$specie_id]['legend']=$symbologies[6];\r
+                                               }\r
+                               \r
+                                               \r
+                               \r
+                                       }\r
+                               \r
+                               }\r
+                               \r
+                               if(count($geodata)>0)\r
+                               {\r
+                                       $flagDisplayPoints=true;\r
+                               }\r
+                               if($flagDisplayPoints===true)\r
+                               {\r
+                                       //print("insert");      \r
+                                       $sqls=array();\r
+                                       $random=md5($p_uri );\r
+                                       foreach ($geodata as $key=>$val)\r
+                               \r
+                                       {       \r
+\r
+                                               //ftheeten march 2013\r
+                                               \r
+                               \r
+                                                       if(isset($geodata[$key]['geodata']['lat'] )===true)\r
+                               \r
+                                                       {\r
+                                                               $sqls[]="delete from rest_points where userid='".$random."' AND id=".$key.";";\r
+                               \r
+                                                               foreach ($geodata[$key]['geodata']['lat'] as $k=>$v)\r
+                               \r
+                                                               {\r
+                                                                       $long=$geodata[$key]['geodata']['lon'][$k];\r
+                                                                       if(is_numeric($geodata[$key]['geodata']['lat'][$k])===true&& is_numeric($geodata[$key]['geodata']['lon'][$k])===true)\r
+                                                                       {\r
+                               \r
+                                                                               $sql="insert into rest_points(userid,id,the_geom,label,timestamp_point)         values('$random',".$key.",";\r
+                               \r
+                                                                               $sql.="GeometryFromText('POINT(".$long." ";\r
+                               \r
+                                                                               $sql.=$v;\r
+                               \r
+                                                                               $sql.=")',4326),'".$geodata[$key]['legend']."',";\r
+                               \r
+                                                                               $sql.=" current_timestamp);";\r
+                               \r
+                                                                               $sqls[]=$sql;\r
+\r
+                                                                               //ftheeten\r
+                                                                               if(isset($p_dest_epsg_projection)&&strtolower($p_img)=='false')\r
+                                                                               {\r
+                                                                                       if(strlen($p_dest_epsg_projection)>0)\r
+                                                                                       {\r
+                                                                                               $convProj=convertPointProjection($conn, $v,$long, "4326", $p_dest_epsg_projection);\r
+                                                                                               $convertedCoordinates[]=$convProj;\r
+                                                                                       }\r
+                                                                               }\r
+\r
+                                                                       }\r
+                                                                       else//error coordinates not numeric (ftheeten March 2013)\r
+                                                                       {\r
+                                                                               $flagError=true;\r
+                                                                               $errorMessages[]=EXC_001;\r
+                                                                               handle_exception_rest($errorMessages);\r
+                                                                               return;\r
+                                                                               \r
+                                                                       }\r
+                               \r
+                                                               }\r
+                               \r
+                                                       }\r
+                                               \r
+                               \r
+                                       }\r
+                               \r
+                               \r
+                               \r
+                                       $sql_total="";\r
+                               \r
+                               \r
+                               \r
+                                       foreach ($sqls as $k=>$v)\r
+                               \r
+                                       {\r
+                               \r
+                                               //      echo $v."<br>";\r
+                               \r
+                                               $sql_total.=$v;\r
+                               \r
+                                       }\r
+                               \r
+                               \r
+                                       //print($sql_total);\r
+                                       $conn = pg_pconnect(POSTGIS_CS);\r
+                               \r
+                                       if (pg_ErrorMessage($conn))\r
+                               \r
+                                       { \r
+                               \r
+                                               echo "<p><b>Ocurrio un error conectando a la base de datos: .</b></p>"; \r
+                               \r
+                                       }\r
+                               \r
+                                       else\r
+                               \r
+                                       {\r
+                               \r
+                                               // echo $sql_total;\r
+                               \r
+                                               pg_exec($sql_total);    \r
+                                       }\r
+                                       $xml="<gml>";\r
+                               \r
+                                               $xml.="<feature>Species definition</feature>";\r
+                               \r
+                               \r
+                               \r
+                                       foreach ($geodata as $k=>$v)\r
+                               \r
+                                       {\r
+                               \r
+                                               switch ($geodata[$k]['symbol'])\r
+                               \r
+                                               {\r
+                               \r
+                                                       case('c'):$geodata[$k]['symbol']="Circle"; break; \r
+                               \r
+                                                       case('s'):$geodata[$k]['symbol']="Star"; break;\r
+                               \r
+                                                       case('sq'):$geodata[$k]['symbol']="Square"; break;\r
+                               \r
+                                               }\r
+                               \r
+                                               //echo $geodata[$k]['legend']."<br>";\r
+                               \r
+                                               $xml.="<specie>";\r
+                               \r
+                                               $xml.="<id>".$k."</id>";\r
+                               \r
+                                               $xml.="<name>".$geodata[$k]['legend']."</name>";\r
+                               \r
+                                               $xml.="<style>";\r
+                               \r
+                                               $xml.="<color>".$geodata[$k]['color']."</color>";\r
+                               \r
+                                               $xml.="<symbol>".$geodata[$k]['symbol']."</symbol>";\r
+                               \r
+                                               $xml.="<size>".$geodata[$k]['size']."</size>";\r
+                                               \r
+                                               if(isset($geodata[$k]['outlinecolor']))\r
+                                               {\r
+                                                       $xml.="<outlinecolor>".$geodata[$k]['outlinecolor']."</outlinecolor>";\r
+                                               }\r
+\r
+                                               if(isset($geodata[$k]['linewidth']))\r
+                                               {\r
+                                                       $xml.="<linewidth>".$geodata[$k]['linewidth']."</linewidth>";\r
+                                               }\r
+                               \r
+\r
+                                               if(isset($geodata[$k]['opacity']))\r
+                                               {\r
+                                                       $xml.="<opacity>".$geodata[$k]['opacity']."</opacity>";\r
+                                               }\r
+                               \r
+                                               $xml.="</style>";\r
+                               \r
+                                               $xml.="</specie>"; \r
+                               \r
+                                       }\r
+                               \r
+                                       $xml.="</gml>";\r
+                               \r
+                                       //echo $xml;\r
+                               \r
+                                       $dom_new = new DOMDocument();\r
+                               \r
+                                       $xsl = new XSLTProcessor;\r
+                               \r
+                                       $xsl->setParameter( '', 'userid', $random);\r
+                               \r
+                                       $style = realpath(dirname(__FILE__)."/".'points_transparent.xsl');\r
+                               \r
+                                       $dom_new->load($style);\r
+                               \r
+                                       $xsl->importStyleSheet($dom_new);\r
+                               \r
+                                       $dom_new->loadXML($xml);\r
+                               \r
+                                       $out = $xsl->transformToXML($dom_new);\r
+                               \r
+                               \r
+                               \r
+                                       $path_towrite="/var/www/synthesys/www/v1/sld/point_".$random.".sld";\r
+                               \r
+                                       //print($path_towrite);\r
+                               \r
+                                       $fp=fopen("$path_towrite","w+");\r
+                               \r
+                                       $write=fwrite($fp,$out);\r
+                               \r
+                               }\r
+                               \r
+                               //end point part\r
+                               \r
+                               \r
+                               //ftheeten 2011/04/13\r
+                               $arrayBackgroundStyle=array();\r
+                               \r
+                               \r
+                               if (count($layers)>0)//(ereg(",",$layers))\r
+                               \r
+                               {\r
+                               //print("case1");\r
+                               \r
+                                       \r
+                               \r
+                                       //$layers=explode(",",$layers);\r
+                               \r
+                                       $ls=array();\r
+                               \r
+                                       $ls_styles=array();\r
+                                       $ls_types=array();\r
+                                       $i=0;\r
+                               \r
+                                       //foreach ($layers as $k=>$v)\r
+                                       //print($layers);\r
+                                       //print_r($arrayTableStyles);\r
+                                       $v2="";\r
+                               \r
+                                       foreach($layers as $v)  \r
+                                       {\r
+                               \r
+                                               $k=$i;  \r
+                                               switch ($v)\r
+                               \r
+                                               {               \r
+                               \r
+                                                       case ('earth'): \r
+                               \r
+                                                       $v2="country_earth";\r
+                               \r
+                                                       \r
+                               \r
+                                                               $ls[]=$v2;\r
+                                                               if(strlen($arrayTableStyles[$v]['value'])==0)\r
+                                                               {\r
+                                                                       $ls_styles[]='line';\r
+                                                               }\r
+                                                               else\r
+                                                               {\r
+                                                                       $ls_styles[]=$arrayTableStyles[$v]['value'];\r
+                                                               }\r
+                                                               $ls_types[]=$arrayTableStyles[$v]['type'];\r
+                                                               \r
+                               \r
+                                                       break;\r
+                               \r
+                                                       case ('tdwg1'): \r
+                               \r
+                                                       $v2="topp:tdwg_level_1";\r
+                               \r
+                                                       //end loop array key in symbol$ls[]=$v2;\r
+                               \r
+                                                               if(strlen($arrayTableStyles[$v]['value'])==0)\r
+                                                               {\r
+                                                                       $ls_styles[]='line';\r
+                                                               }\r
+                                                               else\r
+                                                               {\r
+                                                                       $ls_styles[]=$arrayTableStyles[$v]['value'];\r
+                                                               }\r
+                                                               $ls_types[]=$arrayTableStyles[$v]['type'];\r
+                                                               \r
+                               \r
+                                               //      array_push($ls,$v);\r
+                               \r
+                                                       break;\r
+                               \r
+                                                       case ('tdwg2'): \r
+                               \r
+                                                       $v2="topp:tdwg_level_2";\r
+                               \r
+                                                       $ls[]=$v2;\r
+                               \r
+                                                               if(strlen($arrayTableStyles[$v]['value'])==0)\r
+                                                               {\r
+                                                                       $ls_styles[]='line';\r
+                                                               }\r
+                                                               else\r
+                                                               {\r
+                                                                       $ls_styles[]=$arrayTableStyles[$v]['value'];\r
+                                                               }\r
+                                                               $ls_types[]=$arrayTableStyles[$v]['type'];\r
+                                                               \r
+                               \r
+                               //                      array_push($ls,$v);\r
+                               \r
+                                                       break;\r
+                               \r
+                                                       case ('tdwg3'): \r
+                               \r
+                                                       $v2="topp:tdwg_level_3";\r
+                               \r
+                                                       $ls[]=$v2;\r
+                                                               if(strlen($arrayTableStyles[$v]['value'])==0)\r
+                                                               {\r
+                                                                       $ls_styles[]='line';\r
+                                                               }\r
+                                                               else\r
+                                                               {\r
+                                                                       $ls_styles[]=$arrayTableStyles[$v]['value'];\r
+                                                               }\r
+                                                               $ls_types[]=$arrayTableStyles[$v]['type'];\r
+                                                               \r
+                               \r
+                                                       break;\r
+                               \r
+                                                       case ('tdwg4'): \r
+                               \r
+                                                       $v2="topp:tdwg_level_4";\r
+                               \r
+                                                       $ls[]=$v2;\r
+                                                               if(strlen($arrayTableStyles[$v]['value'])==0)\r
+                                                               {\r
+                                                                       $ls_styles[]='line';\r
+                                                               }\r
+                                                               else\r
+                                                               {\r
+                                                                       $ls_styles[]=$arrayTableStyles[$v]['value'];\r
+                                                               }\r
+                                                               $ls_types[]=$arrayTableStyles[$v]['type'];\r
+                                                               \r
+                               \r
+                                                       break;\r
+                                                       default:\r
+                               \r
+                                                               $ls[]=$v;\r
+                                                               \r
+                                                               if(strlen($arrayTableStyles[$v]['value'])==0)\r
+                                                               {\r
+                                                                       $ls_styles[]='';\r
+                                                               }\r
+                                                               else\r
+                                                               {\r
+                                                                       $ls_styles[]=$arrayTableStyles[$v]['value'];\r
+                                                               }\r
+                                                               $ls_types[]=$arrayTableStyles[$v]['type'];\r
+                                                               \r
+                                                       break;\r
+                               \r
+                                               }\r
+                               \r
+                                               $i++;\r
+                               \r
+                               //Æ? $v;\r
+                               \r
+                                       }\r
+                               \r
+                               \r
+                               \r
+                               $styles_string="";\r
+                               \r
+                                       //ftheeten april 2011   \r
+                                       $i=0;\r
+                               \r
+                                       foreach ($ls as $k=>$v)\r
+                               \r
+                                       {\r
+                               \r
+                               \r
+                               \r
+                                               $ls_string.=$v.",";\r
+                                               \r
+                                               //ftheeten\r
+                               \r
+                                               //$styles_string.="line,";\r
+                                               $styles_string.=$ls_styles[$i];\r
+                                               $arrayBackgroundStyle[$i]['name']=$v;\r
+\r
+                                               $arrayBackgroundStyle[$i]['style']=$ls_styles[$i];\r
+                                               $arrayBackgroundStyle[$i]['type']=$ls_types[$i];\r
+\r
+                                               if(array_key_exists($v,$arrayWMSIdxURLs)===TRUE)\r
+                                               {\r
+                                                       //print("key exists for $v");\r
+                                                       $arrayBackgroundStyle[$i]['external_wms']="yes";\r
+\r
+                                                       $arrayBackgroundStyle[$i]['external_wms_url']=$arrayWMSIdxURLs[$v]["url"];\r
+                                                       $arrayBackgroundStyle[$i]['external_wms_version']=$arrayWMSIdxURLs[$v]["version"];\r
+                                                       $arrayBackgroundStyle[$i]['external_wms_filter']=$arrayWMSIdxURLs[$v]["filter"];\r
+                                               }\r
+                                               else\r
+                                               {\r
+                                                       $arrayBackgroundStyle[$i]['external_wms']="no";\r
+                                               }\r
+                                               $i++;\r
+                               \r
+                                       }\r
+                               \r
+                                               $ls_string=substr($ls_string,0,-1);\r
+                               \r
+                                               $styles_string=substr($styles_string,0,-1);\r
+                               \r
+                                               //      $styles_string.=$ls[count($ls)-1];\r
+                               \r
+                                               \r
+                               \r
+                               }\r
+                               \r
+                               else\r
+                               \r
+                               {\r
+                               //print("case 2");\r
+                                               $type_string="";\r
+                               \r
+                                               switch ($layers[0])\r
+                               \r
+                                               {\r
+                               \r
+                               \r
+                               \r
+                                                       case ('earth'): \r
+                               \r
+                                                               $ls_string="topp:country_earth";\r
+                                                               //ftheeten 13/04/2011   \r
+                                                               if(strlen($arrayTableStyles[$layers[0]]['value'])==0)\r
+                                                               {\r
+                                                                       $styles_string="line";\r
+                                                               }\r
+                                                               else\r
+                                                               {\r
+                                                                       $style_string=$arrayTableStyles[$layers[0]]['value'];\r
+                                                               }\r
+                                                               $type_string=$arrayTableStyles[$layers[0]]['type'];\r
+                                               \r
+                               \r
+                                                       break;\r
+                               \r
+                                                               case ('e_prov'): \r
+                               \r
+                                                               $ls_string="topp:province_europe";\r
+                                                               //ftheeten 13/04/2011   \r
+                                                               if(strlen($arrayTableStyles[$layers[0]]['value'])==0)\r
+                                                               {\r
+                                                                       $styles_string="line";\r
+                                                               }\r
+                                                               else\r
+                                                               {\r
+                                                                       $style_string=$arrayTableStyles[$layers[0]]['value'];\r
+                                                               }\r
+                                                               $type_string=$arrayTableStyles[$layers[0]]['type'];\r
+                                               \r
+                                                       \r
+                               \r
+                                                               break;\r
+                               \r
+                                                       case ('tdwg1'): \r
+                               \r
+                                                               $ls_string="topp:tdwg_level_1";\r
+                                                               //ftheeten 13/04/2011   \r
+                                                               if(strlen($arrayTableStyles[$layers[0]]['value'])==0)\r
+                                                               {\r
+                                                                       $styles_string="line";\r
+                                                               }\r
+                                                               else\r
+                                                               {\r
+                                                                       $style_string=$arrayTableStyles[$layers[0]]['value'];\r
+                                                               }\r
+                                                               $type_string=$arrayTableStyles[$layers[0]]['type'];\r
+                                               \r
+                               \r
+                                                       break;\r
+                               \r
+                                                       case ('tdwg2'): \r
+                               \r
+                                                               $ls_string="topp:tdwg_level_2";\r
+                                                               //ftheeten 13/04/2011   \r
+                                                               if(strlen($arrayTableStyles[$layers[0]]['value'])==0)\r
+                                                               {\r
+                                                                       $styles_string="line";\r
+                                                               }\r
+                                                               else\r
+                                                               {\r
+                                                                       $style_string=$arrayTableStyles[$layers[0]]['value'];\r
+                                                               }\r
+                                                               $type_string=$arrayTableStyles[$layers[0]]['type'];\r
+                               \r
+                                                       break;\r
+                               \r
+                                                       case ('tdwg3'): \r
+                               \r
+                                                               $ls_string="topp:tdwg_level_3";\r
+                                                               //ftheeten 13/04/2011   \r
+                                                               if(strlen($arrayTableStyles[$layers[0]]['value'])==0)\r
+                                                               {\r
+                                                                       $styles_string="line";\r
+                                                               }\r
+                                                               else\r
+                                                               {\r
+                                                                       $style_string=$arrayTableStyles[$layers[0]]['value'];\r
+                                                               }\r
+                                                               $type_string=$arrayTableStyles[$layers[0]]['type'];\r
+                                               \r
+                               \r
+                               \r
+                                                       break;\r
+                               \r
+                                                       case ('tdwg4'): \r
+                               \r
+                                                               $ls_string="topp:tdwg_level_4";\r
+                                                               //ftheeten 13/04/2011   \r
+                                                               if(strlen($arrayTableStyles[$layers[0]]['value'])==0)\r
+                                                               {\r
+                                                                       $styles_string="line";\r
+                                                               }\r
+                                                               else\r
+                                                               {\r
+                                                                       $style_string=$arrayTableStyles[$layers[0]]['value'];\r
+                                                               }\r
+                                                               $type_string=$arrayTableStyles[$layers[0]]['type'];\r
+                                               \r
+                               \r
+                                                       break;\r
+                               \r
+                                                       default:\r
+                               \r
+                                                               $ls_string=$layers;\r
+                                                               //ftheeten 13/04/2011   \r
+                                                               if(strlen($arrayTableStyles[$layers[0]]['value'])==0)\r
+                                                               {\r
+                                                                       $styles_string="";\r
+                                                               }\r
+                                                               else\r
+                                                               {\r
+                                                                       $style_string=$arrayTableStyles[$layers[0]]['value'];\r
+                                                               }\r
+                                                               $type_string=$arrayTableStyles[$layers[0]]['type'];\r
+                                               \r
+                               \r
+                                                       break;\r
+                               \r
+                                                       \r
+                               \r
+                                               }\r
+                               \r
+                               \r
+                               \r
+                                                       \r
+                                                       //comment out ftheeten 13/04/2011\r
+                               \r
+                                                       //$styles_string="line";\r
+                                                       $arrayBackgroundStyle[0]['name']=$ls_string;\r
+                                                       $arrayBackgroundStyle[0]['style']=$styles_string;\r
+                                                       $arrayBackgroundStyle[0]['type']=$type_string;\r
+                                                       if(array_key_exists($v,$arrayWMSIdxURLs)===TRUE)\r
+                                                       {\r
+                                                       \r
+                                                               $arrayBackgroundStyle[$i]['external_wms']="yes";\r
+                                                               $arrayBackgroundStyle[$i]['external_wms_url']=$arrayWMSIdxURLs[$v]["url"];\r
+                                                               $arrayBackgroundStyle[$i]['external_wms_version']=$arrayWMSIdxURLs[$v]["version"];\r
+                                                               $arrayBackgroundStyle[$i]['external_wms_filter']=$arrayWMSIdxURLs[$v]["filter"];                        \r
+                                                       }\r
+                                                       else\r
+                                                       {\r
+                                                               $arrayBackgroundStyle[$i]['external_wms']="no";\r
+                                                       }\r
+                               \r
+                               \r
+                               \r
+                               }\r
+                               //print_r($arrayWMSIdxURLs);\r
+                               //print_r($arrayBackgroundStyle);\r
+                               \r
+                               $ad=explode('||',$ad);\r
+                               //print_r($ad);\r
+                               \r
+                               \r
+                               foreach ($ad as $k=>$v)\r
+                               {// loop ad\r
+                               \r
+                                       //tdwg3:a:PHI,SPA|b:ITA\r
+                               \r
+                               \r
+                                       if ($p_title)\r
+                               \r
+                                       {//if title\r
+                               \r
+                                               $title_external=$p_title;\r
+                               \r
+                                       }//if title\r
+                               \r
+                                       //title=a:cultivated|b:forest\r
+                               \r
+                                       $t=explode('|',$title_external);\r
+                               \r
+                                       $title_array=array();\r
+                               \r
+                               \r
+                               \r
+                                       foreach ($t as $k=>$v)\r
+                               \r
+                                       {//loop t\r
+                               \r
+                                               $title=explode(':',$v);\r
+                                               if(isset($title[1]))\r
+                                               {\r
+                                                       $title_array[$title[0]]=$title[1];\r
+                                               }\r
+                                               else\r
+                                               {\r
+                                                       $title_array[$title[0]]=NULL;\r
+                                               }\r
+                                       }//loop t\r
+                               \r
+                               \r
+                               \r
+                                       if ($p_label)\r
+                               \r
+                                       {//if label\r
+                               \r
+                                               $label=$p_label;\r
+                               \r
+                                       }// if label\r
+                               \r
+                               \r
+                                       //$images=a,b:orange,green\r
+                               \r
+                                       if ($p_img_url)\r
+                               \r
+                                       {//if images_url\r
+                               \r
+                                               $images_url=$p_img_url;\r
+                               \r
+                                               //$images_url="a,b:edit.csic.es/fitxers/hatch_images|c:edit.csic.es/fitxers/hatch_images";\r
+                               \r
+                                               $images_url=explode('|',$images_url);\r
+                               \r
+                               \r
+                               \r
+                                       }//image_url\r
+                               \r
+                               \r
+                               \r
+                               \r
+                               \r
+                                       $symbols=$p_symbols;\r
+                               \r
+                                       //$symbols="a,b:hatch_orange.gif|c:hatch_green.gif";\r
+                               \r
+                                       $symbols=explode('|',$symbols);\r
+                               \r
+                                       $symbols_url=array();\r
+                               \r
+                                       foreach ($symbols as $k=>$v)\r
+                               \r
+                                       {//for symbols\r
+                               \r
+                                               $symbols=explode(':',$v);\r
+                               \r
+                                               $keys=explode(',',$symbols[0]);\r
+                                               if(isset($symbols[1]))\r
+                                               {\r
+                                                       $get_v=explode(',',$symbols[1]);\r
+                                               }\r
+                                               else\r
+                                               {\r
+                                                       $get_v=array();\r
+                                               }\r
+                                       //              var_dump ($get_v);\r
+                               \r
+                                               if ($p_img_url)\r
+                               \r
+                                               {//if images urls\r
+                               \r
+                                                       foreach ($keys as $k=>$v)\r
+                               \r
+                                                       {\r
+                               \r
+                               \r
+                               \r
+                                                               $symbols_url[$v]['symbols']=$get_v[0];\r
+                               \r
+                                                               $symbols_url[$v]['size']=$get_v[1];     \r
+                               \r
+                                                               $symbols_url[$v]['format']=$get_v[2];   \r
+                               \r
+                                                       }       \r
+                               \r
+                                               }\r
+                               \r
+                                       }// for symbols\r
+                               \r
+                                       if ($p_img_url)\r
+                               \r
+                                       {//if images url\r
+                               \r
+                                               foreach ($images_url as $k=>$v)\r
+                               \r
+                                               {\r
+                               \r
+                                                       $images=explode(':',$v);\r
+                               \r
+                                                       //echo $images[0];\r
+                               \r
+                                                       $keys=explode(',',$images[0]);\r
+                               \r
+                                                       //var_dump($keys);\r
+                               \r
+                                                       foreach ($keys as $k=>$v)\r
+                               \r
+                                                       {\r
+                               \r
+                                                               $symbols_url[$v]['url']=$images[1];     \r
+                               \r
+                                                       }\r
+                               \r
+                                               }\r
+                               \r
+                                       }//end if images_url\r
+                               \r
+                               \r
+                               \r
+                               \r
+                               \r
+                               //$ad="tdwg2/d:Mexico,Caribbean||tdwg4/b:Chiapas,Oaxaca,Veracruz||tdwg3/a:MXC|b:MXE,MXG|c:MXS,MXT";\r
+                               \r
+                               \r
+                               \r
+                                       $color=$p_areas_style;\r
+                               \r
+                               \r
+                               \r
+                                               $ms=$p_size;\r
+                               \r
+                                               if (@ereg(",",$ms))\r
+                                               {\r
+                               \r
+                                                       $ms=explode(',',$ms);\r
+                               \r
+                                                       $width=$ms[0];\r
+                               \r
+                                                       $height=$ms[1];\r
+                               \r
+                                               }\r
+                               \r
+                                               else \r
+                               \r
+                                               {\r
+                               \r
+                                                       $width=$ms;     \r
+                               \r
+                                                       $height=$width/2;\r
+                               \r
+                                               };\r
+                               \r
+                                               \r
+                               \r
+                               \r
+                               \r
+                                       //var_dump($ls_string);\r
+                               \r
+                               \r
+                               \r
+                                       $col=explode('|',$color);\r
+                               \r
+                                       //no dóna error al haver-n'hi només un!\r
+                               \r
+                                       $total_symbols=array();\r
+                               \r
+                                       //$color="a:d7add2,AOOOOOF,2,dotted,cultivated|b:ab8dc9F";\r
+                               \r
+                                       foreach ($col as $color)\r
+                               \r
+                                       {//loop col\r
+                                               //ftheeten 14/03/2011\r
+                                               if(strpos($color,'http://')===false)\r
+                                               {\r
+                                                       $color=explode(':',$color);\r
+                               \r
+                                                       $symbols_key=$color[0];\r
+                               \r
+                                                       $symbols_val=$color[1];\r
+                                               }\r
+                                               else\r
+                                               {\r
+                                                       $color=explode(':',$color,2);\r
+                               \r
+                                                       $symbols_key=$color[0];\r
+                               \r
+                                                       $symbols_val=$color[1];\r
+                                               }\r
+                               \r
+                               \r
+                               \r
+                                               /*$color=explode(':',$color);\r
+                               \r
+                                               $symbols_key=$color[0];\r
+                               \r
+                                               $symbols_val=$color[1];\r
+                                               */\r
+                               \r
+                                               if (!@ereg(",",$symbols_val))\r
+                               \r
+                                               {\r
+                               \r
+                                                       //only fill area; others are default\r
+                               \r
+                                                               $total_symbols[$symbols_key][]=$symbols_val;    \r
+                               \r
+                                               }       \r
+                               \r
+                                               else \r
+                               \r
+                                               {\r
+                               \r
+                                                       $s=explode(',',$symbols_val);\r
+                               \r
+                                                       foreach ($s as $k=>$v)\r
+                               \r
+                                                       {\r
+                               \r
+                                                               $total_symbols[$symbols_key][]=$v;      \r
+                               \r
+                                                       }\r
+                               \r
+                                               }\r
+                               \r
+                                       //      $total_symbols[$symbols_key]=$col_val;\r
+                               \r
+                                       }//loop col\r
+                               \r
+                                       //var_dump($total_symbols);\r
+                               \r
+                                       //'a'-->array 'blue'\r
+                               \r
+                               \r
+                                               foreach ($total_symbols as $k=>$v)\r
+                               \r
+                                               {//loop total symbols\r
+                               \r
+                                       \r
+                               \r
+                                                       //foreach       ($total_symbols as $k2=>$v2)\r
+                               \r
+                                                       //echo $total_symbols[$k][0]."<br>";\r
+                               \r
+                                                               //var_dump($total_symbols[$k]);\r
+                               \r
+                                                       //$color="a:d7add2,AOOOOOF,2,dotted|b:ab8dc9F"; \r
+                               \r
+                               \r
+                               \r
+                                                       for ($i=0;$i<5;$i++)\r
+                               \r
+                                                       {// for loop\r
+                               \r
+                                                               //echo $total_symbols[$k][$i]."<br>";\r
+                               \r
+                                                               switch ($i)\r
+                               \r
+                                                               {\r
+                               \r
+                               \r
+                                                                       case 0:\r
+                               \r
+                               \r
+                               \r
+                                                                       //   if (array_key_exists($i,$total_symbols[$k])){ \r
+                               \r
+                                                                       if($total_symbols[$k][$i]=="")\r
+                               \r
+                                                                       {\r
+                               \r
+                                                                               $total_symbols[$k][$i]="c5bec0";\r
+                               \r
+                                                                       }\r
+                               \r
+                                                                       //}\r
+                               \r
+                                                                       break;\r
+                               \r
+                                                                       case 1:\r
+                                                                               if(isset($total_symbols[$k][$i]))\r
+                                                                               {\r
+                                                                                       if($total_symbols[$k][$i]=="")\r
+                               \r
+                                                                                       {\r
+                               \r
+                                                                                               $total_symbols[$k][$i]="10090b";                                \r
+                               \r
+                                                                                       }\r
+                                                                               }\r
+                                                                               break;\r
+                                                                       case 2:\r
+                                                                               \r
+                                                                                if(isset($total_symbols[$k][$i])===FALSE||$total_symbols[$k][$i]=="")\r
+                               \r
+                                                                               {\r
+                               \r
+                                                                                       $total_symbols[$k][$i]="0.5";                           \r
+                               \r
+                                                                               }\r
+                                                                               break;\r
+                                                                       /*      case 3:\r
+                               \r
+                                                                                        if($total_symbols[$k][$i]=="")\r
+                               \r
+                                                                                               {\r
+                               \r
+                                                                                       $total_symbols[$k][$i]="";                              \r
+                               \r
+                                                                                               }*/\r
+                               \r
+                                                                       /*      case 4:\r
+                               \r
+                                                                                       if($total_symbols[$k][$i]=="")\r
+                               \r
+                                                                                       {\r
+                               \r
+                                                                                                       $total_symbols[$k][$i]="no_style";\r
+                               \r
+                                                                                       }*/\r
+                               \r
+                                                                       case 3:\r
+                               \r
+                                                                               if(isset($total_symbols[$k][$i])===FALSE||$total_symbols[$k][$i]=="")\r
+                               \r
+                                                                               {\r
+                               \r
+                                                                                               $total_symbols[$k][$i]="no_style";\r
+                               \r
+                                                                               }\r
+                                                                               break;\r
+                                                                       case 4:\r
+                               \r
+                                                                               if(isset($total_symbols[$k][$i])===FALSE||$total_symbols[$k][$i]=="")\r
+                               \r
+                                                                               {\r
+                               \r
+                                                                                               $total_symbols[$k][$i]="no_label";\r
+                               \r
+                                                                               }\r
+                                                                               break;\r
+                               \r
+                                                                 }//fi switch\r
+                               \r
+                                                       }               //fi for\r
+                               \r
+                                                       if (array_key_exists($k,$symbols_url))\r
+                               \r
+                                                       {\r
+                               \r
+                                                               $total_symbols[$k]['5']=$symbols_url[$k]['url'];\r
+                               \r
+                                                               $total_symbols[$k]['6']=$symbols_url[$k]['symbols'];\r
+                               \r
+                                                               $total_symbols[$k]['7']=$symbols_url[$k]['size'];\r
+                               \r
+                                                               $total_symbols[$k]['8']=$symbols_url[$k]['format'];\r
+                               \r
+                               \r
+                               \r
+                                                       }\r
+                               \r
+                                                       \r
+                               \r
+                                               }//for total symbols\r
+                               \r
+                                               //var_dump($total_symbols);\r
+                               \r
+                               \r
+                               \r
+                                               $tdwg=array();\r
+                               \r
+                                               //ftheeten 21/02/2011\r
+                               \r
+                                               $wms_field_array=array();\r
+                               \r
+                                               foreach ($ad as $k=>$v)\r
+                               \r
+                                               {//for ad\r
+                               \r
+                                                       $v=explode('|',$v);\r
+                               \r
+\r
+                                                       foreach ($v as $k=>$v)\r
+                               \r
+                                                       {//for v\r
+                               \r
+                                                               if ($k==0)\r
+                               \r
+                                                               {//if k\r
+                               \r
+                                                         \r
+                               \r
+                                                                       $first_data=explode(':',$v);\r
+                               \r
+                                                                       /*$first_layer=$first_data[0];\r
+\r
+                               \r
+                                                                       $first_style=$first_data[1];\r
+                               \r
+                                                                       $first_pol=$first_data[2];\r
+                               \r
+                                                                       */\r
+                               \r
+                                                                       //ftheeten 21/02/2011 (WMS field for non hardcded tdwg layers)\r
+                               \r
+                                                                       $first_wms_field='';\r
+                               \r
+                                                                       if(count($first_data)==4)\r
+                               \r
+                                                                       {//loop first data\r
+                               \r
+                                                                       //print("WMS field found!!!!=");    \r
+                               \r
+                                                                       //print($first_data[1]);\r
+                               \r
+                                                                       //print("!!!!");\r
+                               \r
+                                                                               $first_layer=$first_data[0];\r
+                               \r
+                                                                               $first_wms_field=$first_data[1];\r
+                               \r
+                                                                               $first_style=$first_data[2];\r
+                               \r
+                                                                               $first_pol=$first_data[3];\r
+                               \r
+                                                                       }//loop first data\r
+                               \r
+                                                                       else\r
+                               \r
+                                                                       {//loop first data\r
+                               \r
+                                                                               $first_layer=$first_data[0];\r
+                               \r
+                                                                               $first_style=$first_data[1];\r
+                               \r
+                                                                               $first_pol=$first_data[2];\r
+                               \r
+                                       \r
+                               \r
+                                                                       }//loop first data      \r
+                               \r
+                                                                       //var_dump($v);\r
+                               \r
+                               \r
+                                                                       if (!@ereg(",",$first_pol))\r
+                               \r
+                                                                       {//loop first pol\r
+                               \r
+                                                       \r
+                               \r
+                                                                               $tdwg[$first_layer][$first_style]['zones']=$first_pol;\r
+                               \r
+                                                                               //ftheeten 2010/02/21\r
+                               \r
+                                                                               $wms_field_array[$first_layer]=$first_wms_field;\r
+                               \r
+                                                       \r
+                               \r
+                                                                       }//loop first pol\r
+                               \r
+                                                                       else\r
+                               \r
+                                                                       {//loop first pol\r
+                               \r
+                                                                               //ftheeten 2010/02/21\r
+                               \r
+                                                                               $wms_field_array[$first_layer]=$first_wms_field;\r
+                               \r
+                                                                               //tdwg4:c:Nicaragua,Chiapas,Oaxaca,Veracruz\r
+                               \r
+                                                                               $l3=explode(',',$first_pol);\r
+                               \r
+                                                                               foreach($l3 as $value)\r
+                               \r
+                                                                               {\r
+                               \r
+                                                                                       $tdwg[$first_layer][$first_style]['zones'][]=$value;\r
+                               \r
+                                                                                       //echo $value."<br>";\r
+                               \r
+                                                                               }\r
+                               \r
+                                                                       }//loop first pol\r
+                               \r
+                               \r
+                               \r
+                                                               }//if k \r
+                               \r
+                                                               else  //not the first data \r
+                               \r
+                                                               {//if k \r
+                               \r
+                                                                       //b:Mexico\r
+                               \r
+                                                                       //si no trobem cap comma, (ex: b:IRQ )d:NA o c:NA|b:PI\r
+                               \r
+                                                                       // a cada estil l'hi correspon només un país  \r
+                               \r
+                                                                       //      var_dump($v);\r
+                               \r
+                                                                       $data=explode(':',$v);\r
+                               \r
+                                                                       //ftheeten 2010/02/21\r
+                               \r
+                                                                       $wms_field_array[$first_layer]=$first_wms_field;\r
+                               \r
+                                                                       if (!@ereg(",",$data[1]))\r
+                               \r
+                                                                       {//if data 1\r
+                               \r
+                               \r
+                                                                               $tdwg[$first_layer][$data[0]]['zones']=$data[1];\r
+                               \r
+                                                                               //      var_dump($tdwg[$first_layer]);\r
+                               \r
+                                                                               //var_dump($data[1]);\r
+                               \r
+                                                                               //$styles[$key]['zones'];\r
+                               \r
+                                                                               //      echo $val;\r
+                               \r
+                                                                       }//if data 1\r
+                               \r
+                                                                       else\r
+                               \r
+                                                                       {//if data 1\r
+                               \r
+                                                                               //c:Nicaragua,Chiapas,Oaxaca,Veracruz\r
+                               \r
+                                                                               $l3=explode(',',$data[1]);\r
+                               \r
+                                                                               foreach($l3 as $value)\r
+                               \r
+                                                                               {//$l3\r
+                               \r
+                                                                                       $tdwg[$first_layer][$data[0]]['zones'][]=$value;\r
+                                                                                       //echo $value."<br>";\r
+                               \r
+                                                                               }//$l3\r
+                               \r
+                                                                       }//if data 1\r
+                               \r
+                               \r
+                               \r
+                                                               }//if k\r
+                               \r
+                               \r
+                               \r
+                               \r
+                               \r
+                                                       }//for v        \r
+                               \r
+                               \r
+                               \r
+                                               }//for ad (line 566)\r
+                               \r
+                               \r
+                               \r
+                               }//for ad \r
+                               \r
+                               \r
+                               \r
+                               \r
+                               $tdwg3_val=array();\r
+                               \r
+                               $tdwg3_total=array();\r
+                               \r
+                               \r
+                               \r
+                               $legend="<gml>";\r
+                               \r
+                               foreach ($total_symbols as $k=>$v)\r
+                               \r
+                               {//loop total symbols in gml\r
+                                       if(isset($title_array[$k]))\r
+                                       {\r
+                                               if(strlen($title_array[$k])>0)\r
+                                               {\r
+                               \r
+                                                       //var_dump($k);  //a,b\r
+                               \r
+                                                       $legend.="<style><name>".$title_array[$k]."</name>";\r
+                               \r
+                                                       //$legend.="<style><name>".$total_symbols[$k][4]."</name>";\r
+                               \r
+                               \r
+                               \r
+                                                       $legend.="<label>".$k."</label>";\r
+                               \r
+                               \r
+                               \r
+                                                       if (array_key_exists($k['url'],$symbols_url))\r
+                               \r
+                                                       {//if key in symbol\r
+                               \r
+                               \r
+                               \r
+                                                                       \r
+                               \r
+                                                               $legend.="<hatching>http://".$symbols_url[$k]['url']."/".$symbols_url[$k]['symbols'].".".$symbols_url[$k]['format']."</hatching>";\r
+                               \r
+                                                               switch ($symbols_url[$k]['format'])\r
+                               \r
+                                                               {\r
+                               \r
+                                                                       case ('gif'): $format='image/gif';break;\r
+                               \r
+                                                                       case ('png'): $format='image/png';break;\r
+                               \r
+                                                                       case ('jpeg'): $format='image/jpeg';break;\r
+                               \r
+                                                               }\r
+                               \r
+                               \r
+                               \r
+                                                               $legend.="<symbol_size>".$symbols_url[$k]['size']."</symbol_size>";\r
+                               \r
+                                                               $legend.="<symbol_format>".$format."</symbol_format>";\r
+                               \r
+                                                               //$xml.="<hatch_symbol>".."</hatch_symbol>";\r
+                               \r
+                                                               $legend.="<color>hatching</color>";\r
+                               \r
+                                                       }//end if array key in symbol\r
+                               \r
+                                                       else \r
+                                                       { // if array key in symbol\r
+                               \r
+                                                               $legend.="<hatching>NO</hatching>";\r
+                               \r
+                                                               $legend.="<color>".$total_symbols[$k][0]."</color>";\r
+                               \r
+                                                       } //end array key in symbol\r
+\r
+\r
+\r
+\r
+\r
+\r
+                               \r
+                               \r
+                               \r
+                               \r
+                               \r
+                                                       $legend.="<stroke_color>".$total_symbols[$k][1]."</stroke_color>";\r
+                               \r
+                                                       $legend.="<stroke_width>".$total_symbols[$k][2]."</stroke_width>";\r
+                               \r
+                                                       switch ($total_symbols[$k][3])\r
+                               \r
+                                                       {// switch total symbols\r
+                               \r
+                                                               case ('1_2'): \r
+                                                                       $total_symbols[$k][3]="1 2 1 2";\r
+                                                               break;\r
+                               \r
+                                                               case ('1_4'): \r
+                                                                       $total_symbols[$k][3]="1 4 1 4";\r
+                                                               break;\r
+                               \r
+                                                               case ('2_2'): \r
+                                                                       $total_symbols[$k][3]="2 2 2 2";\r
+                                                               break;\r
+                               \r
+                                                               case ('2_4'):\r
+                                                                       $total_symbols[$k][3]="2 4 2 4";\r
+                                                               break;\r
+                               \r
+                                                               case ('5_7'): \r
+                                                                       $total_symbols[$k][3]="5 7 5 7";\r
+                                                               break;\r
+                               \r
+                                                               case ('10_5'): \r
+                                                                       $total_symbols[$k][3]="10 5 10 5";\r
+                                                               break;\r
+                               \r
+                                                       }//end switch\r
+                               \r
+                                                               $legend.="<stroke_style>".$total_symbols[$k][3]."</stroke_style>";\r
+                               \r
+                                                               $legend.="</style>";\r
+                                               }\r
+                                       }\r
+                               \r
+                               }//end loop symbols in gml\r
+                               \r
+                                       \r
+                               $legend.="</gml>";\r
+                               \r
+                               $legend_xml[]=$legend;\r
+                               \r
+                               //var_dump($legend_xml);\r
+\r
+                               \r
+                               //echo $legend;\r
+                               \r
+                                $p=simplexml_load_string($legend_xml[0]);\r
+                               \r
+                               $hatching=$p->style->hatching;\r
+                               \r
+                               $xsl = new XSLTProcessor;\r
+                               \r
+                               $xsl->setParameter( '', 'symbol', $hatching);\r
+                               \r
+                               $xsl->setParameter( '', 'layer', $layer);\r
+                               \r
+                               $xsl->setParameter( '', 'field', $field);\r
+                               \r
+                               $xsl->setParameter( '', 'label_field', $label_field);\r
+                               \r
+                               $style = realpath(dirname(__FILE__)."/".'areas_legend_no.xsl');\r
+                               \r
+                               $dom_new = new DOMDocument();\r
+                               \r
+                               $dom_new->load($style);\r
+                               \r
+                               $xsl->importStyleSheet($dom_new);\r
+                               \r
+                               $dom_new->loadXML($legend_xml[0]);\r
+                               \r
+                               $out = $xsl->transformToXML($dom_new);\r
+                               \r
+                               \r
+                               \r
+                               //$random = (rand()%300).".sld";\r
+                               \r
+                               //$leg_path_towrite=DIR_PLATFORM."/edit_wp5/fitxers/sld/$random";\r
+                               \r
+                               $leg_path_towrite="/var/www/synthesys/www/v1/sld/$random";\r
+                               \r
+                               $fp=fopen("$leg_path_towrite","w+");\r
+                               \r
+                               $write=fwrite($fp,$out);\r
+                               \r
+                               //$leg_url="/var/www/synthesys/www/v1/sld/$random";\r
+                               \r
+                               $leg_url=LEGEND_URL."/".$random;\r
+                               \r
+                               \r
+                               \r
+                               $legs=array();\r
+                               //print_r($tdwg);\r
+                               foreach ($tdwg as $k=>$v)\r
+                               \r
+                               {//loop tdwg 1\r
+                               \r
+                                       $tmp_wms_field="default";\r
+                               \r
+                                       foreach ($tdwg[$k] as $k2=>$v2)\r
+                               \r
+                                       {\r
+                               \r
+                               \r
+                                               $legs[$k2]=$k;\r
+                               \r
+                                       \r
+                               \r
+                                       }\r
+                               \r
+                               \r
+                               \r
+                                       $xml="<gml>";\r
+                               \r
+                                       $pos_prefix = substr_count($k,$prefix_wms);\r
+                               \r
+                                       $displayedLayer=$k;\r
+                               \r
+                                       //print("pos=".$pos_prefix."=");\r
+                               \r
+                                       if($pos_prefix===0) \r
+                               \r
+                                       {\r
+                               \r
+                                               //print("prefix");\r
+                               \r
+                                               $displayedLayer=$prefix_wms.$k;\r
+                               \r
+                                       }\r
+                               \r
+                                               \r
+                               \r
+                                       $xml.="<feature>".$displayedLayer."</feature>";\r
+                               \r
+                                       \r
+                               \r
+                                       foreach ($v as $style=>$value)\r
+                               \r
+                                       {// loop style=>value\r
+                               \r
+                               \r
+                                               $xml.="<style><name>".$style."</name>";\r
+                               \r
+                                               $xml.="<label>".$label."</label>";\r
+                               \r
+                                       \r
+                               \r
+                                               if (array_key_exists($style,$symbols_url))\r
+                               \r
+                                               {//if key exists\r
+                               \r
+                                                       //var_dump($symbols_url[$style]);\r
+                               \r
+                                                       $xml.="<hatching>http://".$symbols_url[$style]['url']."/".$symbols_url[$style]['symbols'].".".$symbols_url[$style]['format']."</hatching>";\r
+                               \r
+                                                       switch ($symbols_url[$style]['format'])\r
+                               \r
+                                                       {\r
+                               \r
+                                                               case ('gif'): \r
+                                                                       $format='image/gif';\r
+                                                               break;\r
+                               \r
+                                                               case ('png'): \r
+                                                                       $format='image/png';\r
+                                                               break;\r
+                               \r
+                                                               case ('jpeg'): \r
+                                                                       $format='image/jpeg';\r
+                                                               break;\r
+                               \r
+                                                       }\r
+                               \r
+                                                       $xml.="<symbol_size>".$symbols_url[$style]['size']."</symbol_size>";\r
+                               \r
+                                                       $xml.="<symbol_format>".$format."</symbol_format>";\r
+                               \r
+                                                       //$xml.="<hatch_symbol>".."</hatch_symbol>";\r
+                               \r
+                                                       $xml.="<color>hatching</color>";\r
+                               \r
+                                               }//if key exists\r
+                               \r
+                                               else \r
+                               \r
+                                               {//if key not exists \r
+                               \r
+                                                       $xml.="<hatching>NO</hatching>";\r
+                               \r
+                                                       $xml.="<color>".$total_symbols[$style][0]."</color>";\r
+                               \r
+                                               }//if key not exists\r
+                               \r
+                                               $xml.="<stroke_color>".$total_symbols[$style][1]."</stroke_color>";\r
+                               \r
+                                               $xml.="<stroke_width>".$total_symbols[$style][2]."</stroke_width>";\r
+                               \r
+                                               switch ($total_symbols[$style][3])\r
+                               \r
+                                               {//loop total symbols\r
+                               \r
+                                                       case ('1_2'): \r
+                                                               $total_symbols[$style][3]="1 2 1 2";\r
+                                                       break;\r
+                               \r
+                                                       case ('1_4'): \r
+                                                               $total_symbols[$style][3]="1 4 1 4";\r
+                                                       break;\r
+                               \r
+                                                       case ('2_2'): \r
+                                                               $total_symbols[$style][3]="2 2 2 2";\r
+                                                       break;\r
+                               \r
+                                                       case ('2_4'): \r
+                                                               $total_symbols[$style][3]="2 4 2 4";\r
+                                                       break;\r
+                               \r
+                                                       case ('5_7'): \r
+                                                               $total_symbols[$style][3]="5 7 5 7";\r
+                                                       break;\r
+                               \r
+                                                       case ('10_5'): \r
+                                                               $total_symbols[$style][3]="10 5 10 5";\r
+                                                       break;\r
+                               \r
+                                               }//loop total symbols\r
+                               \r
+                                               $xml.="<stroke_style>".$total_symbols[$style][3]."</stroke_style>";\r
+                               \r
+                                       \r
+                               \r
+                                               foreach ($value as $key=>$country)\r
+                               \r
+                                               {//loop key=> country\r
+                               \r
+                                                       if(!is_array($country))\r
+                               \r
+                                                       {\r
+                               \r
+                                       \r
+                               \r
+                                                               $xml.="<country>".$country."</country>";\r
+                               \r
+                                                               $xml.="</style>";\r
+                               \r
+                                                       }\r
+                               \r
+                                                       else \r
+                               \r
+                                                       {\r
+                               \r
+                                                               foreach ($tdwg[$k][$style]['zones'] as $zones)\r
+                               \r
+                                                               {\r
+                               \r
+                                                                       $xml.="<country>".$zones."</country>";\r
+                               \r
+                                                               }\r
+                               \r
+                                                                       $xml.="</style>";\r
+                               \r
+                                                       } //fi foreach country\r
+                               \r
+                                               }// end loop key country\r
+                               \r
+                                       }//loop styles=>values\r
+                               \r
+                                       $xml.="</gml>";\r
+                               \r
+                                       //print($xml);\r
+                               \r
+                                       $gmls[$k]=$xml;\r
+                               \r
+                               }//end loop tdwg 1\r
+                               \r
+                               //var_dump($gmls[$k]);\r
+                               \r
+                               \r
+                               \r
+                                       if ($p_bbox)\r
+                               \r
+                                       {\r
+                               \r
+                                               $bbox=$p_bbox;\r
+                               \r
+                                               \r
+                                       }\r
+                               \r
+                                       else\r
+                               \r
+                                       {\r
+\r
+                                               //ftheeten 24/01/2013\r
+                                               \r
+                                                       //$conn = pg_pconnect(POSTGIS_CS);\r
+                       \r
+                                                               if (pg_ErrorMessage($conn)) \r
+                       \r
+                                                               { \r
+                       \r
+                                                                        echo "<p><b>Ocurrio un error conectando a la base de datos: .</b></p>"; \r
+                       \r
+                                                                        }\r
+                       \r
+                                                               else\r
+                                                               { //else BBOX SQL\r
+\r
+                                                                       $BBOX_sql="SELECT extent(g) FROM(select extent(the_geom) as g from tdwgs where ";                               \r
+                                                                       $c=0;\r
+                                                               //print("before switch");\r
+                                                                       $flagUserTable=false;\r
+                                                                       $ibbox=0;\r
+                                                                       foreach ($tdwg as $k=>$v)\r
+                                                                       {//BEGIN FOR GENERATE SQL BBOX\r
+                                                                               //if added ftheeten 25/01/2013\r
+                                                                               if(array_key_exists($k,$arrayWMSIdxURLs)===FALSE)\r
+                                                                               {\r
+                                                                                               $c=0;\r
+                                                                       \r
+                                                                                                       switch ($k)\r
+                                                                                                       {\r
+                                                                                       \r
+                                                                                                       //ftheeten 21/02/2011: $db_layers and $layer_sh seem unused\r
+                                                                                                       //see also line 830\r
+                                                                                                       case ('tdwg1'): $layer='topp:tdwg_level_1';$db_layer='tdwg_level_1';\r
+                                                                                                       $field='code';\r
+                                                                                                       //??????????????????????????????????????$label_field='zona';\r
+                                                                                                       if($ibbox==0)\r
+                                                                                                               {\r
+                                                                                                                       $BBOX_sql="SELECT extent(g) FROM(select extent(the_geom) as g from ".$db_layer." where ";\r
+                                                                                                               }\r
+                                                                                                               elseif($ibbox>0)\r
+                                                                                                               {\r
+                                                                                                                       $BBOX_sql.="UNION ALL select extent(the_geom) as g from ".$db_layer." where ";\r
+                                                                                                                       //print("toto");\r
+                                                                                                               }       \r
+                                                                                                       $ibbox++;                       \r
+                                                                                                       break;\r
+                                                                                                       case ('tdwg2'): $layer='topp:tdwg_level_2';$db_layer='tdwg_level_2';\r
+                                                                                                       $field='code';\r
+                                                                                                       $label_field='code';\r
+                                                                                                       if($ibbox==0)\r
+                                                                                                               {\r
+                                                                                                                       $BBOX_sql="SELECT extent(g) FROM(select extent(the_geom) as g from ".$db_layer." where ";\r
+                                                                                                               }\r
+                                                                                                               elseif($ibbox>0)\r
+                                                                                                               {\r
+                                                                                                                       $BBOX_sql.="UNION ALL select extent(the_geom) as g from ".$db_layer." where ";\r
+                                                                                                                       //print("toto");\r
+                                                                                                               }       \r
+                                                                                                       $ibbox++;\r
+                                                                                                       break;\r
+                                                                                                       case ('tdwg3'): $layer='topp:tdwg_level_3'; $db_layer='tdwg_level_3';\r
+                                                                                                       $field='code';$layer_sh="TDWG 3";$label_field='code';\r
+                                                                                                       if($ibbox==0)\r
+                                                                                                               {\r
+                                                                                                                       $BBOX_sql="SELECT extent(g) FROM(select extent(the_geom) as g from ".$db_layer." where ";\r
+                                                                                                               }\r
+                                                                                                               elseif($ibbox>0)\r
+                                                                                                               {\r
+                                                                                                                       $BBOX_sql.="UNION ALL select extent(the_geom) as g from ".$db_layer." where ";\r
+                                                                                                                       //print("toto");\r
+                                                                                                               }                               \r
+                                                                                                       $ibbox++;                       \r
+                                                                                                       break;\r
+                                                                                                       case ('tdwg4'): $layer='topp:tdwg_level_4';$db_layer='tdwg_level_4';\r
+                                                                                                       $field="code";\r
+                                                                                                       $label_field='code';$layer_sh="TDWG 4";\r
+                                                                                                       if($ibbox==0)\r
+                                                                                                               {\r
+                                                                                                                       $BBOX_sql="SELECT extent(g) FROM(select extent(the_geom) as g from ".$db_layer." where ";\r
+                                                                                                               }\r
+                                                                                                               elseif($ibbox>0)\r
+                                                                                                               {\r
+                                                                                                                       $BBOX_sql.="UNION ALL select extent(the_geom) as g from ".$db_layer." where ";\r
+                                                                                                                       //print("toto");\r
+                                                                                                               }       \r
+                                                                                                       $ibbox++;\r
+                                                                                                       break;\r
+                                                                                                       case ('e_w_0'): $layer='topp:europe_west_level_0';$db_layer='europe_west_level_0';\r
+                                                                                                       $field="code";\r
+                                                                                                       $label_field='code';$layer_sh="EURW 0";\r
+                                                                                                       if($ibbox==0)\r
+                                                                                                               {\r
+\r
+                                                                                                                       $BBOX_sql="SELECT extent(g) FROM(select extent(the_geom) as g from ".$db_layer." where ";\r
+                                                                                                               }\r
+                                                                                                               elseif($ibbox>0)\r
+                                                                                                               {\r
+                                                                                                                       $BBOX_sql.="UNION ALL select extent(the_geom) as g from ".$db_layer." where ";\r
+                                                                                                               \r
+               //print("toto");\r
+                                                                                                               }       \r
+                                                                                                       $ibbox++;\r
+                                                                                                       break;\r
+                                                                                                       case ('e_w_1'): $layer='topp:europe_west_level_1';$db_layer='europe_west_level_1';\r
+                                                                                                       $field="code";\r
+                                                                                                       $label_field='code';$layer_sh="EURW 1";\r
+                                                                                                       if($ibbox==0)\r
+                                                                                                               {\r
+                                                                                                                       $BBOX_sql="SELECT extent(g) FROM(select extent(the_geom) as g from ".$db_layer." where ";\r
+                                                                                                               }\r
+                                                                                                               elseif($ibbox>0)\r
+                                                                                                               {\r
+                                                                                                                       $BBOX_sql.="UNION ALL select extent(the_geom) as g from ".$db_layer." where ";\r
+                                                                                                                       //print("toto");\r
+                                                                                                               }       \r
+                                                                                                       $ibbox++;\r
+                                                                                                       break;\r
+                                                                                                       //ftheeten 21/01/2011 (for other layers than tdwg)\r
+                                                                                                       default:\r
+                                                                                                               $layer=$k;\r
+                                                                                                               $field=$wms_field_array[$k];\r
+                                                                                                               $label_field=$wms_field_array[$k];//'?';\r
+                                                                                                               //print("________________________layer=".$layer);\r
+                                                                                                               //print("________________________field=".$field);\r
+                                                                               //ftheeten auto boox 24/08/2011\r
+                                                                                                               if($ibbox==0)\r
+                                                                                                               {\r
+                                                                                                                       $BBOX_sql="SELECT extent(g) FROM(select extent(the_geom) as g from ".$layer." where ";\r
+                                                                                                               }\r
+                                                                                                               elseif($ibbox>0)\r
+                                                                                                               {\r
+                                                                                                                       $BBOX_sql="UNION ALL select extent(the_geom) as g from ".$layer." where ";\r
+                                                                                                                       //print("toto");\r
+                                                                                                               }       \r
+                                                                                                               $flagUserTable=true;\r
+                                                                                                               $ibbox++;\r
+                                                                                                               //print('====>ibbox='.$ibbox);\r
+                                                                                                               break;\r
+                                                                                                               \r
+                                                                                                       }\r
+                                                                       \r
+                                                                       \r
+                                                                                                       foreach($v as $key=>$val)\r
+                                                                                                       {// for $v as $key=>$val)\r
+                                                                                                               //      var_dump($val);\r
+                                                                                                       if ($c>0)\r
+                                                                                                       {\r
+                                                                                                               $BBOX_sql.="OR ";\r
+                                                                                                                }\r
+                                                                                                               if (count($val['zones'])==1)\r
+                                                                                                               {\r
+                                                                       \r
+                                                                                                                //$BBOX_sql.="code='".$val['zones']."' ";\r
+                                                                                                                       $BBOX_sql.=$field."='".$val['zones']."' ";\r
+                                                                       \r
+                                                                                                               }\r
+                                                                                                               else\r
+                                                                                                               {//begin else\r
+                                                                                                                       $count=count($val['zones']);\r
+                                                                                                                       //$BBOX_sql.="select extent(the_geom) from tdwgs where code=";\r
+                                                                       \r
+                                                                       \r
+                                                                                                                       for ($i=0;$i<($count-1);$i++)\r
+                                                                                                                       {\r
+                                                                               \r
+                                                                                                                               if ($i==0)\r
+                                                                                                                               {\r
+                                                                                                                                       //$BBOX_sql.="code='".$val['zones'][0]."'";\r
+                                                                                                                                       $BBOX_sql.=$field."='".$val['zones'][0]."'";\r
+                                                                                                                               }\r
+                                                                                                                               else\r
+                                                                                                                               {\r
+                                                                                                                                               //$BBOX_sql.=" OR code='".$val['zones'][$i]."'";\r
+                                                                                                                                               $BBOX_sql.=" OR ".$field."='".$val['zones'][$i]."'";\r
+                                                                                                                               }\r
+                                                                                                       \r
+                                                                                                                       }//end for\r
+                                                                                                                       \r
+                                                                                                                       \r
+                                                                                                                       //QUINA CUTRADA!!!!!\r
+                                                                       \r
+                                                                                                                       //$BBOX_sql.=" OR code='".$val['zones'][$count-1]."'";\r
+                                                                                                                       $BBOX_sql.=" OR ".$field."='".$val['zones'][$count-1]."'";\r
+                                                                       \r
+                                                                       \r
+                                                                                                               }//end else\r
+                                                                                                               $c++;\r
+                                                                                                       }// end for $v as $key=>$val)\r
+                                                                               }//end test if(array_key_exists($v,$arrayWMSIdxURLs)===FALSE)\r
+                                                                       }//end FOR bbox\r
+                                                                       //ftheeten 24/08/2011\r
+                                                                       $BBOX_sql.=") AS foo;";\r
+                                                                       //print($BBOX_sql);\r
+                       \r
+                                                                       //ftheeten 24/08/2011\r
+       \r
+                                                                       $postgis_result=pg_query($BBOX_sql);\r
+                                                                       while ($row = pg_fetch_array($postgis_result, NULL, PGSQL_ASSOC))\r
+                                                                       {\r
+                                                                               $b=substr($row['extent'],4);\r
+                                                                               $cadena=substr($b,0,-1); \r
+                                                                               $bbox=str_replace(' ',',',$cadena);\r
+                                                                               //echo "this is bbox".$bbox;\r
+                       \r
+                                                                       }\r
+                       \r
+                                                               }//end if BBOX SQL\r
+                       \r
+                                                               \r
+                                               \r
+                                       }\r
+                               \r
+                                       //print($BBOX_sql);\r
+                               \r
+                               $recalculate="true";\r
+                               \r
+                               if ($p_recalculate)\r
+                               \r
+                               {\r
+                               \r
+                               if ($p_recalculate=='false')\r
+                               \r
+                               {\r
+                               \r
+                               $recalculate='false';\r
+                               \r
+                               }\r
+                               \r
+                               };\r
+                               \r
+                               //print("old bbox");\r
+//print($bbox);\r
+               \r
+                               \r
+                               \r
+                               \r
+                                                       if ($recalculate=="true")\r
+                               \r
+                                                       {\r
+                               \r
+                                                                      $bbox2=explode(',',$bbox);               \r
+                               \r
+                               \r
+                               \r
+                                                       $ratio_x=$bbox2[2]-$bbox2[0];\r
+                               \r
+                                                       $ratio_y=abs($bbox2[1]-$bbox2[3]);\r
+                               \r
+                                                                       if (((($ratio_x)/$ratio_y))<2)\r
+                               \r
+                                                       {\r
+                               \r
+                                                               $to_change='x';\r
+                               \r
+                                               //      echo "yesss XXXX";\r
+                               \r
+                                                       //echo "ratio is   ".(($ratio_x*2)/$ratio_y)."<br>";\r
+                               \r
+                                                       }\r
+                               \r
+                                                       else \r
+                               \r
+                                                       {       \r
+                               \r
+                                                               $to_change='y';\r
+                               \r
+                                                       }\r
+                               \r
+                                                       switch ($to_change)\r
+                               \r
+                                                       {\r
+                               \r
+                               \r
+                               \r
+                                                       case 'x':\r
+                               \r
+                                                       $diff_x=abs((($ratio_x)/2 -$ratio_y)/2);        \r
+                               \r
+                                                       $bbox2[0]=$bbox2[0]-$diff_x;    \r
+                               \r
+                                                       $bbox2[2]=$bbox2[2]+$diff_x;    \r
+                               \r
+                                                       $bbox=$bbox2[0].",".$bbox2[1].",".$bbox2[2].",".$bbox2[3];\r
+                               \r
+                                                       $ratio=$ratio_x/$ratio_y;\r
+                               \r
+                                                       $width = (int)($height+($ratio*30));\r
+                               \r
+                                                       break;  \r
+                               \r
+                               \r
+                               \r
+                               \r
+                               \r
+                                                       case 'y':\r
+                               \r
+                               \r
+                               \r
+                                                       $diff_x=abs((($ratio_x -$ratio_y)/2)/2);        \r
+                               \r
+                                                       if ($bbox2[1]<0)\r
+                               \r
+                                                       {\r
+                               \r
+                                                       //echo "bbox_1 negativa";\r
+                               \r
+                                                               $bbox2[1]=$bbox2[1]-$diff_x;\r
+                               \r
+                                                           if (abs($bbox2[1])>90)\r
+                               \r
+                                                               {\r
+                               \r
+                                                               $bbox2[1]=-90;\r
+                               \r
+                                                                }\r
+                               \r
+                                                       }\r
+                               \r
+                                                       else \r
+                               \r
+                                                       {\r
+                               \r
+                                                        $bbox2[1]=$bbox2[1]-$diff_x;   \r
+                               \r
+                                                        if (abs($bbox2[1])>90)\r
+                               \r
+                                                       {\r
+                               \r
+                                                               $bbox2[1]=90; \r
+                               \r
+                                                               }\r
+                               \r
+                                                       };\r
+                               \r
+                                                       if ($bbox2[3]<0 )\r
+                               \r
+                                                       {\r
+                               \r
+                                                       $bbox2[3]=$bbox2[3]+$diff_x;    \r
+                               \r
+                                                        if (abs($bbox2[3])>90)\r
+                               \r
+                                                         {\r
+                               \r
+                                                               $bbox2[3]=-90; \r
+                               \r
+                                                               }\r
+                               \r
+                                                       }\r
+                               \r
+                                                       else\r
+                               \r
+                                                       {\r
+                               \r
+                                                       $bbox2[3]=$bbox2[3]+$diff_x;\r
+                               \r
+                                                       if (abs($bbox2[3])>90)\r
+                               \r
+                                                       {\r
+                               \r
+                                                               $bbox2[3]=90; \r
+                               \r
+                                                       }\r
+                               \r
+                                                       }\r
+                               \r
+                                                       $bbox=$bbox2[0].",".$bbox2[1].",".$bbox2[2].",".$bbox2[3];\r
+//print("new bbox");\r
+//print($bbox);\r
+                               \r
+                                                       break;\r
+                               \r
+                                                       }//fi switch\r
+                               \r
+                                               }//fi recalculate=true\r
+                               \r
+                                                       else\r
+                               \r
+                                                       {\r
+                               \r
+                                                               //Recalculate =false (we try to put everything)\r
+                               \r
+                                                               //test added by ftheeten 2010/04/09 to avoid error message\r
+                               \r
+                                                               if($ratio_y!=0)\r
+                               \r
+                                                               {\r
+                               \r
+                                                                       $ratio=$ratio_x/$ratio_y;\r
+                               \r
+                                                               }\r
+                               \r
+                                                               //echo $ratio;\r
+                               \r
+                               //                              $height = (int)($width / $ratio);\r
+                               \r
+                                       \r
+                               \r
+                                       }\r
+                               \r
+                                                       \r
+                               \r
+                               //echo $height;\r
+                               \r
+                               $url_list=array();\r
+                               \r
+                               $legend_list=array();\r
+                               \r
+                               $files_list=array();\r
+                               \r
+                               \r
+                               \r
+                               $c=count($gmls);\r
+                               \r
+                               //print("BBOX=".$bbox);\r
+                               \r
+                               //global $bbox;\r
+                               //print("GLOBALBBOX=".$bbox);\r
+                               if (isset($p_foo))\r
+                               \r
+                               {\r
+                               \r
+                                       $json='foo({"bbox":"'.$bbox.'","legend":"'.$leg_url.'","layers":[';             \r
+                               \r
+                               }\r
+                               \r
+                               elseif (isset($p_callback)) //addition ftheeten 16/06/2010\r
+                               \r
+                               {\r
+                               \r
+                                       $json=$p_callback.'({"bbox":"'.$bbox.'","legend":"'.$leg_url.'","layers":[';\r
+                                       //$json='({"bbox":"'.$bbox.'","legend":"'.$leg_url.'","layers":[';\r
+                               \r
+                               }\r
+                               \r
+                               else\r
+                               \r
+                               {\r
+                               \r
+                               $json='[{"bbox":"'.$bbox.'","legend":"'.$leg_url.'","layers":[';\r
+                               \r
+                               }\r
+                               \r
+                               \r
+                               \r
+                               \r
+                               \r
+                               \r
+                               \r
+                               \r
+                               \r
+                               $i=0;\r
+//print("GML=");                               \r
+//print_r($gmls);\r
+                               foreach ($gmls as $feature=>$v)\r
+                               \r
+                               {\r
+                               \r
+                               $i++;\r
+                               //print($feature);\r
+                               //print("-------");\r
+                               //print($v);\r
+                               $dom_new = new DOMDocument();\r
+                               \r
+                               //print("-----------------------");\r
+                               \r
+                               //print_r($v);\r
+                               $flagExternalWMS=FALSE;\r
+                               $urlExternalWMS="";\r
+                               \r
+                               switch ($feature)\r
+                               \r
+                               {\r
+                               \r
+                               \r
+                               \r
+                               \r
+                               \r
+                                       case ('tdwg1'): $layer='topp:tdwg_level_1';$db_layer='tdwg_level_1';\r
+                               \r
+                                       $field='code';\r
+                               \r
+                                       $label_field='zona';\r
+                               \r
+                                       break;\r
+                               \r
+                                       case ('tdwg2'): $layer='topp:tdwg_level_2';$db_layer='tdwg_level_2';\r
+                               \r
+                                       $field='code';\r
+                               \r
+                                       $label_field='code';\r
+                               \r
+                                       break;\r
+                               \r
+                                       case ('tdwg3'): $layer='topp:tdwg_level_3'; $db_layer='tdwg_level_3';\r
+                               \r
+                                       $field='code';$layer_sh="TDWG 3";$label_field='code';\r
+                               \r
+                                       break;\r
+                               \r
+                                       case ('tdwg4'): $layer='topp:tdwg_level_4';$db_layer='tdwg_level_4';\r
+                               \r
+                                       $field="code";\r
+                               \r
+                                       $label_field='code';$layer_sh="TDWG 4";\r
+                               \r
+                                       break;\r
+                               \r
+                                       case ('e_w_0'): $layer='topp:europe_west_level_0';$db_layer='europe_west_level_0';\r
+                               \r
+                                       $field="code";\r
+                               \r
+                                       $label_field='code';$layer_sh="EURW 0";\r
+                               \r
+                                       break;\r
+                               \r
+                                       case ('e_w_1'): $layer='topp:europe_west_level_1';$db_layer='europe_west_level_1';\r
+                               \r
+                                       $field="code";\r
+                               \r
+                                       $label_field='code';$layer_sh="EURW 1";\r
+                               \r
+                                       break;\r
+                               \r
+                                               //ftheeten 21/02/2011\r
+                               \r
+                                       default:\r
+                                               //print("default");\r
+                                               if(array_key_exists($feature,$arrayWMSIdxURLs))\r
+                                               {\r
+                                               \r
+                                                       //print("external for $feature");\r
+                                                       $prefix="";\r
+                                                       $ext_layer="";\r
+                                                       $prefix_array=array_keys($tdwg[$feature]);\r
+                                                       $flagExternalWMS=TRUE;\r
+                                                       if(count($prefix_array)>0)\r
+                                                       {\r
+                                                               $prefix=$prefix_array[0];\r
+                                                               \r
+                                                               $ext_layer_array=$tdwg[$feature][$prefix];\r
+                                                               $ext_layer=$ext_layer_array["zones"];\r
+                                                               \r
+                                                               if(strlen($prefix)>0)\r
+                                                               {\r
+                                                                       \r
+                                                                       $ext_layer=$prefix.":".$ext_layer;\r
+                                                                       \r
+\r
+                                                                       \r
+                                                               }\r
+                                                               \r
+                                                       }\r
+                                                       $urlExternalWMS=f_autoFillWMSURL($arrayWMSIdxURLs[$feature]["url"], $arrayWMSIdxURLs[$feature]["version"], $ext_layer,"", $bbox, $width, $height,$arrayWMSIdxURLs[$feature]["filter"]);\r
+                                                       \r
+\r
+                                               \r
+                                                       \r
+\r
+                                               }\r
+                                               else\r
+                                               {\r
+                                                       //print("NOT external for $feature");\r
+                                                       $layer=$feature;\r
+                               \r
+                                                       $field=$wms_field_array[$feature];\r
+                               \r
+                                                       $label_field=$tmp_wms_field;\r
+                                               }\r
+                               \r
+                                               break;\r
+                               \r
+                               }\r
+                               \r
+                               //print_r($tdwg);\r
+                               \r
+                               $p=simplexml_load_string($gmls[$feature]);\r
+                               \r
+                               $hatching=$p->style->hatching;\r
+                               \r
+                               $xsl = new XSLTProcessor;\r
+                               \r
+                               $xsl->setParameter( '', 'symbol', $hatching);\r
+                               \r
+                                       $pos_prefix = substr_count($layer,$prefix_wms);\r
+                               \r
+                                               $displayedLayer=$layer;\r
+                               \r
+                                               //print("pos=".$pos_prefix."=");\r
+                               \r
+                                               if($pos_prefix===0) \r
+                               \r
+                                               {\r
+                               \r
+                                                       //print("prefix");\r
+                               \r
+                                                       $displayedLayer=$prefix_wms.$layer;\r
+                               \r
+                                               }\r
+                               \r
+                               if(strlen($displayedLayer)==0||strlen($field)==0)\r
+                               {\r
+                                       print("It seems that the name of the layer for area and/or the name of its indexing column is missing. \n Syntax is \"ad=layer_name:indexer_column:alias_for_style:Value in DB\" (exemple: \"&ad=em_tiny_jan2003:emarea:a:Ge\")\n Please check the structure of the layer in WMS/WFS for the name of the columns");\r
+                               }\r
+\r
+                               $xsl->setParameter( '', 'layer', $displayedLayer);\r
+                               //ftheeten 2011/05/27\r
+                               \r
+                               $xsl->setParameter( '', 'field', $field);\r
+                               \r
+                               //$xsl->setParameter( '', 'label_field', $label_field);\r
+                               $xsl->setParameter( '', 'label_field', $field);\r
+                               \r
+                               $style = realpath(dirname(__FILE__)."/".'areas_pattern.xsl');\r
+                               \r
+                               $dom_new->load($style);\r
+                               \r
+                               $xsl->importStyleSheet($dom_new);\r
+                               \r
+                               $dom_new->loadXML($gmls[$feature]);\r
+                               \r
+                               $out = $xsl->transformToXML($dom_new);\r
+                               \r
+                               srand(time());\r
+                               \r
+                               //$random = (rand()%300).".sld";\r
+                               \r
+                               $path_towrite="/var/www/synthesys/www/v1/sld/".$feature."_".$random;\r
+                               \r
+                               //echo $path_towrite;\r
+                               \r
+                               $fp=fopen("$path_towrite","w");\r
+                               \r
+                               $write=fwrite($fp,$out);\r
+                               \r
+                               array_push($files_list,$path_towrite);\r
+                               \r
+                               //echo $out;\r
+                               \r
+                               \r
+                               \r
+                               \r
+                               \r
+                               $json.='{"tdwg": "' . $feature. '","session": "'.$sessionid.'",';\r
+                               \r
+                               \r
+                               \r
+                               //$json.='"sld": "' . $feature."_".$random.'"}';\r
+                               \r
+                               //correction ftheeten 09/04/2010\r
+                               \r
+                               $nameSLDFile=$feature."_".$random;\r
+                               \r
+                               $json.='"sld": "' . V1_SLD_URL."/".$nameSLDFile.'"';\r
+                               \r
+                               \r
+                               $json.='}';\r
+                               \r
+                               \r
+                               \r
+                               if ($i < $c)\r
+                               \r
+                               {\r
+                               \r
+                               $json.=',';\r
+                               \r
+                               }\r
+                               \r
+\r
+                                       if(strlen($layer)>0||((strlen($urlExternalWMS)>0)&&$flagExternalWMS===TRUE))\r
+                                       {\r
+                                               //print("BBOX=".$bbox);\r
+                                               //print("ADDED");\r
+                                               $url="";\r
+                                               //test added ftheeten 2013/01/25\r
+                                               if($flagExternalWMS===TRUE&&strlen($urlExternalWMS)>0)\r
+                                               {\r
+                                                       $url=$urlExternalWMS;\r
+                                               }\r
+                                               else\r
+                                               {                                               \r
+                                                       $url=URL_GEOSERVER."?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&TRANSPARENT=TRUE&SERVICE=WMS&EPSG=4326&layers=";\r
+                               \r
+                                                       $url.=$layer."&format=image/png&bbox=".$bbox."&WIDTH=".$width."&HEIGHT=".$height."&SLD=".V1_SLD_URL."/".$nameSLDFile;\r
+                                               }                       \r
+                                               //print($url);          \r
+                                               $url_list[]=$url;\r
+                               \r
+                                               $legend_list[]=$legend_url;\r
+                                       }\r
+                               \r
+                               }\r
+                               \r
+                               //correction ftheeten 09/04/2010\r
+                               \r
+                               $json.="]";\r
+                               \r
+                               \r
+                               \r
+                               \r
+                               \r
+                               $json.=",\"geoserver\": \"".URL_GEOSERVER."\"";\r
+                               if($p_occ_data)\r
+                               {                               \r
+                                       $json.=",\"points_sld\": \"".URL_SITE."/synthesys/www/v1/sld/point_".$random.".sld\"";\r
+                                       if(isset($p_dest_epsg_projection)&&strtolower($p_img)=='false')\r
+                                       {\r
+                                               if(strlen($p_dest_epsg_projection)>0)\r
+                                               {\r
+                                                       $json.=",\"dest_projection\": \"".$p_dest_epsg_projection."\"";\r
+                                                       $bbox_dest_proj=explode(",",$bbox);\r
+       \r
+                                                       $point1_conv=convertPointProjection($conn,$bbox_dest_proj[1],$bbox_dest_proj[0],"4236","900913");\r
+                                                       $point2_conv=convertPointProjection($conn,$bbox_dest_proj[3],$bbox_dest_proj[2],"4236","900913");\r
+                                                       $json.=",\"bbox_dest_projection\": \"".$point1_conv.",".$point2_conv."\"";\r
+                                                       $json.=",\"points_dest_projection\": \"".implode("|",$convertedCoordinates)."\"";\r
+                                               }\r
+                                       }\r
+                               }\r
+                               if(strtolower($p_jsoncreatefile)==="true")\r
+                               {\r
+                                       $imgpathforjsonurl=V1_IMG;\r
+                                       $json.=", \"img\": \"".$random2_www."\"";       \r
+                               }\r
+                               \r
+                               $json.="}";\r
+                               \r
+                               if (isset($p_foo))\r
+                               \r
+                               {\r
+                               \r
+                               $json.=")";     \r
+                               \r
+                               }\r
+                               \r
+                               elseif(isset($p_callback))////addition ftheeten 16/06/2010\r
+                               \r
+                               {\r
+                               \r
+                               $json.=");";    \r
+                               \r
+                               }\r
+                               \r
+                               else\r
+                               \r
+                               {\r
+                               \r
+                               $json.="]";     \r
+                               \r
+                               }\r
+                                       \r
+                               \r
+                                       $random3="/var/www/synthesys/www/v1/img/".md5($p_uri )."bckgrd_layers.png";\r
+                                       $random4="/var/www/synthesys/www/v1/img/".md5($p_uri )."wms_layers.png";\r
+                               \r
+                               //ftheeten 22/02/2011 (sometimes bug if image previously exists)\r
+                                       if(file_exists($random3))\r
+                                       {\r
+                                               unlink($random3);\r
+                               \r
+                                       }\r
+                                       if(file_exists($random4))\r
+                                       {\r
+                                               unlink($random4);\r
+                               \r
+                                       }\r
+                                       \r
+                                       $url2_array=array();\r
+                                       $url2="";\r
+                                       $c=" convert -size '".$width."x".$height."' xc:transparent $random3";\r
+                                       if(isset($arrayBackgroundStyle)===true)\r
+                                       {\r
+                                               if(count($arrayBackgroundStyle)>0)\r
+                                               {\r
+                                                       $c='';\r
+                                                       for ($i=0;$i<count($arrayBackgroundStyle);$i++)\r
+                                                       {\r
+                                                               if($arrayBackgroundStyle[$i]['external_wms']=="yes")\r
+                                                               {\r
+                                                                       $url2=f_autoFillWMSURL($arrayBackgroundStyle[$i]['external_wms_url'],$arrayBackgroundStyle[$i]['external_wms_version'], $arrayBackgroundStyle[$i]['style'],"",$bbox, $width, $height, $arrayBackgroundStyle[$i]['external_wms_filter']);\r
+                                                                       $url2_array[]=$url2;\r
+                                                                       \r
+                                                               }\r
+                                                               else\r
+                                                               {\r
+                                                                       $url2=URL_GEOSERVER."?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&TRANSPARENT=TRUE&SERVICE=WMS&EPSG=4326&layers=".$arrayBackgroundStyle[$i]['name'];\r
+                               \r
+                                                                       $url2.="&format=image/png&bbox=".$bbox."&WIDTH=".$width."&HEIGHT=".$height;\r
+                                       \r
+                                                                       if($arrayBackgroundStyle[$i]['type']=="sld")\r
+                                                                       {\r
+                                                                               $url2.="&SLD=".$arrayBackgroundStyle[$i]['style'];\r
+                                                                       }\r
+                                                                       elseif($arrayBackgroundStyle[$i]['type']=="wms_style")\r
+                                                                       {\r
+                                                                               $url2.="&STYLES=".$arrayBackgroundStyle[$i]['style'];\r
+                                                                       }\r
+                                                                       elseif($arrayBackgroundStyle[$i]['type']=="user_sld")\r
+                                                                       {\r
+                                                                               $pos_prefix_sld = substr_count($arrayBackgroundStyle[$i]['name'],$prefix_wms);\r
+                                                                               $displayedLayer_sld=$arrayBackgroundStyle[$i]['name'];\r
+                                                                               //print("pos=".$pos_prefix."=");\r
+                                                                               if($pos_prefix_sld===0) \r
+                                                                               {\r
+                                                                                       //print("prefix");\r
+                                                                                       $displayedLayer_sld=$prefix_wms.$arrayBackgroundStyle[$i]['name'];\r
+                                                                               }\r
+                                                                               $returnedXML=generate_xml_simple_style_no_zone($displayedLayer_sld, $arrayBackgroundStyle[$i]['style'], $arrayBackgroundStyle[$i]['style'], $total_symbols, $symbols_url);\r
+                                                                               //print($returnedXML);\r
+                                                                               $path_towrite="/var/www/synthesys/www/v1/sld/"."_backsld_".$displayedLayer_sld.$random;\r
+                                                                               //print($path_towrite);\r
+                                                                               xml_to_sld_xslt($returnedXML, $displayedLayer_sld,dirname(__FILE__)."/".'areas_pattern.xsl', $path_towrite );\r
+                                                                               $url_back_sld=V1_SLD_URL."/_backsld_".$displayedLayer_sld.$random;\r
+                                                                               $url2.="&SLD=".$url_back_sld;\r
+                                                                       }\r
+                                                       \r
+                                                                       $url2_array[]=$url2;\r
+                                                                       \r
+                                                               }\r
+                                                               \r
+                                                       }\r
+                                               }\r
+                                       }\r
+                                       if(strlen($c)>0)\r
+                                       {\r
+                                               shell_exec($c);\r
+                                       }\r
+                               \r
+                               \r
+                               \r
+                               \r
+                                               $c=" convert -size '".$width."x".$height."' xc:transparent $random3";\r
+                               \r
+                                               shell_exec($c);\r
+                               \r
+                               if(count($url_list)>1)\r
+                               \r
+                               {\r
+                               \r
+                               \r
+                               \r
+                               \r
+                               \r
+                               \r
+                                       for ($i=0;$i<count($url_list);$i++)\r
+                                       {\r
+                               \r
+                                               \r
+                                               if($i==0)\r
+                                               {\r
+                                                       $c="composite '".$url_list[$i]."' '".$url_list[$i]."' '".$random4."'";\r
+                                                       shell_exec($c);\r
+                                       \r
+                                               }\r
+                                               else\r
+                                               {\r
+                                                       $c="composite '".$url_list[$i]."' '".$random4."' '".$random4."'";\r
+                                                       shell_exec($c); \r
+                                                       //print($c);    \r
+                                               }\r
+                               \r
+                               }\r
+                               $c="composite  '$random4' '$random3' '$random2'";\r
+                               \r
+                               //print($c);\r
+                               //readfile($random2);\r
+                               \r
+                               shell_exec($c);\r
+                               \r
+                               //print($url2);\r
+                               \r
+                               }\r
+                               \r
+                               elseif(count($url_list)==1)\r
+                               \r
+                               {\r
+                               \r
+                               //SLDs over normal layers\r
+                               \r
+                                       $c="composite  '$url_list[0]' '$url_list[0]' '$random4'";\r
+                               \r
+                                       //print($c);\r
+                               \r
+                                       shell_exec($c);\r
+                                       $c="composite  '$random4' '$random3' '$random2'";\r
+                               \r
+                               \r
+                                       //print($c);\r
+                                       shell_exec($c);\r
+\r
+\r
+\r
+                               }\r
+                               elseif(count($url_list)==0)\r
+                               {\r
+                                               $c="convert  -size '".$width."x".$height."' xc:transparent $random2";\r
+                               \r
+                                               shell_exec($c);\r
+                               }\r
+       \r
+       \r
+       \r
+       \r
+\r
+       \r
+       \r
+       \r
+       //part ftheeten 12/08/2010 external WMS\r
+       \r
+                       /*\r
+                       $flagExternalWMS=false;\r
+                       $flagExternalWMSForeground=FALSE;\r
+                       $extWFURLArray=array();\r
+       \r
+                       $extWFSURL="";\r
+\r
+       \r
+                       if(isset($p_externalwms)===true&&isset($p_externalwms_layer)===true)    \r
+                       {\r
+       \r
+                               $flagExternalWMS=true;\r
+       \r
+                               $versionWFS=NULL;\r
+\r
+                               if(isset($p_wms_foreground)===true)\r
+                               {\r
+                                       if(strtolower($p_wms_foreground)==="true")\r
+                                       {\r
+                                               $flagExternalWMSForeground=TRUE;\r
+                                       }       \r
+                               }\r
+       \r
+       \r
+                               if(isset($p_externalwms_versions)===true)\r
+       \r
+                               {\r
+       \r
+                                       $versionWFS=$p_externalwms_versions;\r
+       \r
+                               }\r
+       \r
+                               $externalWMSStyle="";\r
+       \r
+                               if(isset($p_externalwms_style)===true)\r
+       \r
+                               {\r
+       \r
+                                       $externalWMSStyle=$p_externalwms_style;\r
+       \r
+                               }\r
+       \r
+                               if(strlen($p_externalwms)>0&&strlen($p_externalwms_layer)>0)\r
+       \r
+                               {\r
+       \r
+                                                                       $versionWFS=NULL;\r
+       \r
+                                                       if(isset($p_externalwms_versions)===true)\r
+       \r
+                                                       {\r
+       \r
+                                                               $versionWFS=$p_externalwms_versions;\r
+       \r
+                                                       }\r
+       \r
+                                                       $externalWMSStyle=NULL;\r
+       \r
+                                                       if(isset($p_externalwms_style)===true)\r
+       \r
+                                                       {\r
+       \r
+                                                               $externalWMSStyle=$p_externalwms_style;\r
+       \r
+                                                       }\r
+       \r
+                                       if(strpos($p_externalwms,"|")>0)\r
+       \r
+                                       {\r
+       \r
+                                                       $arrayWFS=array();\r
+       \r
+                       \r
+       \r
+                                                       $arrayWFS=f_checkWMSParams($arrayWFS,$p_externalwms,"URL","[\|]","[:]");\r
+       \r
+                                                       $arrayWFS=f_checkWMSParams($arrayWFS,$versionWFS,"VERSION","[\|]","[:]");\r
+       \r
+                                                       $arrayWFS=f_checkWMSParams($arrayWFS,$p_externalwms_layer,"LAYERS","[\|]","[:]");\r
+       \r
+                                                       $arrayWFS=f_checkWMSParams($arrayWFS,$externalWMSStyle,"STYLES","[\|]","[:]");\r
+       \r
+                                                       //print("!!!arrayWFS=>");\r
+       \r
+                                                       //print_r($arrayWFS);\r
+       \r
+                                                       foreach($arrayWFS as $key=>$arrayWFSitem)\r
+       \r
+                                                       {\r
+       \r
+                                                               $extWFSURLArray[]=f_writeKeyWFSURL($arrayWFS,$key,$bbox,$width,$height);\r
+       \r
+                                                       }\r
+       \r
+                                                       \r
+       \r
+                                       }\r
+       \r
+                                       else\r
+       \r
+                                       {\r
+       \r
+                                               $externalWMS=$p_externalwms;\r
+       \r
+                                               $externalWMSLayer=$p_externalwms_layer;\r
+       \r
+                                               \r
+       \r
+       \r
+       \r
+                                               $extWFSURL=f_autoFillWMSURL($externalWMS,$externalWMSVersion,$externalWMSLayer,$externalWMSStyle,$bbox,$width,$height, $p_externalwms_filter);\r
+       \r
+                                               $extWFSURLArray[]=$extWFSURL;\r
+       \r
+                                       }\r
+       \r
+                               }\r
+       \r
+       \r
+       \r
+                       }\r
+                       \r
+                       //27/09/2012 mmodif franck foreground\r
+                       if($flagExternalWMS===true&&$flagExternalWMSForeground==FALSE)\r
+       \r
+                       {\r
+       \r
+                               $cptLayers=count($extWFSURLArray);\r
+       \r
+                               for($i=$cptLayers-1;$i>=0;$i--)\r
+       \r
+                               {\r
+       \r
+                                       $c="composite '$random2' '$extWFSURLArray[$i]' '$random2'";\r
+       \r
+                                       shell_exec($c);\r
+       \r
+                               }               \r
+       \r
+                               \r
+       \r
+                       }\r
+*/\r
+                       if(isset($url2_array)===true)\r
+                       {\r
+                               if(count($url2_array)>0)\r
+       \r
+                               {\r
+       \r
+                                       $cptLayers=count($url2_array);\r
+       \r
+                                       for($i=$cptLayers-1;$i>=0;$i--)\r
+       \r
+                                       {\r
+       \r
+                                               $c="composite '$random2' '$url2_array[$i]' '$random2'";\r
+                                               //print($url2_array[$i]);\r
+\r
+       \r
+                                               shell_exec($c);\r
+       \r
+                                       }               \r
+       \r
+                               \r
+       \r
+                               }       \r
+                       }\r
+                       \r
+       /*\r
+                       if(strlen($url2)>0)\r
+                       {\r
+                               $c=" composite '$random2' '$url2' '$random2' ";\r
+                               shell_exec($c);\r
+                       }\r
+       \r
+       */\r
+       \r
+       \r
+       //---display points\r
+       if($flagDisplayPoints===true)\r
+       {       //print("point=true");\r
+       \r
+               if ($p_raster)\r
+               {\r
+       \r
+                       if ($p_raster=='mercantour')\r
+                       {\r
+                               $raster='atbi_mercantour.png';\r
+                       }\r
+       \r
+                       if ($p_raster=='gemer')\r
+                       {\r
+                               $raster='atbi_gemer.png';\r
+                               //$raster='gemer2.jpg';\r
+                       }\r
+                       $c="composite '$random2' '$raster' '$random2'";\r
+                       shell_exec($c);\r
+       \r
+               }\r
+       \r
+       \r
+               $sld_url.=URL_GEOSERVER."?SERVICE=WMS&VERSION=1.1.1&TRANSPARENT=true&STYLES=&REQUEST=GetMap&SERVICE=WMS&EPSG=4326&layers=rest_points&EPSG=4326&format=image/png&bbox=".$bbox."&WIDTH=".$width."&HEIGHT=".$height."&SLD=".URL_SITE."/synthesys/www/v1/sld/point_".$random.".sld";\r
+       \r
+               //print($sld_url);\r
+       \r
+               //$image=imagecreatefrompng($edit_url);\r
+       \r
+               $points= (rand()%300)."_p.png";\r
+       //ftheeten 22/02/2011 (sometimes bug if image previously exists)\r
+               if(file_exists(V1_IMG.'/'.$points))\r
+               {\r
+                       unlink(V1_IMG.'/'.$points);\r
+               }\r
+               //print($sld_url);\r
+               $c="convert '$sld_url' '".V1_IMG."/$points'";\r
+               shell_exec($c) ;\r
+\r
+//print("----");\r
+//print($c);\r
+//print("----");\r
+               $c="composite '".V1_IMG."/$points' '$random2' '$random2'";\r
+               shell_exec($c); \r
+\r
+//print($c);   \r
+//print("----");\r
+       }\r
+       //end display points\r
+       \r
+       //27/09/2012 mmodif franck foreground\r
+                       /*if($flagExternalWMS===true&&$flagExternalWMSForeground==TRUE)\r
+       \r
+               {\r
+                                       \r
+                               $cptLayers=count($extWFSURLArray);\r
+       \r
+                               for($i=$cptLayers-1;$i>=0;$i--)\r
+       \r
+                               {\r
+                               \r
+                                       $c="composite  '".$extWFSURLArray[$i]."' '$random2' '$random2'";\r
+       \r
+                                       shell_exec($c);\r
+       \r
+                               }               \r
+       \r
+                               \r
+       \r
+                       }*/\r
+       \r
+       if ($leg=='1')\r
+       \r
+       {\r
+               //print("display");\r
+       \r
+               $legend_url=URL_GEOSERVER."/wms?REQUEST=GetLegendGraphic&VERSION=1.1.1&format=image/png&WIDTH=64&HEIGHT=36&";\r
+       \r
+\r
+                                       $legend_url.="layer=topp:tdwg_level_3&LEGEND_OPTIONS=forceLabels:on;fontStyle:italic;fontSize:12&SLD=".$leg_url;\r
+       $com="convert  '$legend_url' '$random2_legend'";\r
+       shell_exec($com);\r
+               if($flagDisplayPoints===true)\r
+               {\r
+                       $legend_url_point.=URL_GEOSERVER."/wms?REQUEST=GetLegendGraphic&LEGEND_OPTIONS=forceLabels:on;fontStyle:italic;fontSize:12&VERSION=1.1.1&format=image/png&WIDTH=20&HEIGHT=30&layer=rest_points&SLD=".URL_SITE."/synthesys/www/v1/sld/point_".$random.".sld";\r
+                       $com="convert -background white -append '$legend_url_point' '$random2_legend'  '$random2_legend' ";\r
+                       shell_exec($com);\r
+               }\r
+       \r
+       //print(">>>"); \r
+       //print($legend_url);\r
+       //print("<<<<");        \r
+       \r
+       $mlp=$p_mlp;\r
+\r
+       if(strlen($mlp)==0)\r
+       {\r
+               //print("no");  \r
+               $mlp='3';\r
+       }\r
+//print($mlp);\r
+       \r
+       switch ($mlp)\r
+       \r
+       {\r
+       \r
+       case ('1'):\r
+       \r
+               {\r
+       \r
+       \r
+       \r
+       $com="convert -background white +append '$random2_legend' '$random2'  '$random2'"; //-->exterior ul  \r
+       \r
+       break;\r
+       \r
+               }\r
+       \r
+       case ('2'):\r
+       \r
+               {\r
+       \r
+       $com="convert -background white -append '$random2_legend' '$random2'  '$random2' ";     //2\r
+       \r
+        break;\r
+       \r
+        }\r
+       \r
+        case ('3'):\r
+       \r
+               {\r
+       \r
+       $com="convert -background white +append  '$random2' '$random2_legend'   '$random2' "; //4\r
+       \r
+       break;\r
+       \r
+               }\r
+       \r
+               \r
+       \r
+       case ('4'):\r
+       \r
+               {\r
+       \r
+               \r
+       \r
+       $com="convert  -background white -append  '$random2' '$random2_legend'   '$random2'"; //7\r
+       \r
+       break;\r
+       \r
+               }\r
+       \r
+       case ('5'):\r
+       \r
+               {       \r
+       \r
+        $com="composite -gravity  SouthEast '$random2_legend'  '$random2'   '$random2'";//9\r
+       \r
+       break;\r
+       \r
+       }       \r
+       \r
+       case ('6'):\r
+       \r
+               {       \r
+       \r
+        $com="composite  -gravity  SouthWest '$random2_legend'  '$random2'   '$random2'";//10\r
+       \r
+       break;\r
+       \r
+       }       \r
+       \r
+       case ('7'):\r
+       \r
+               {       \r
+       \r
+        $com="composite -gravity  NorthEast '$random2_legend'  '$random2'   '$random2'";//11\r
+       \r
+       break;\r
+       \r
+       }       \r
+       \r
+       case ('8'):\r
+       \r
+               {       \r
+       \r
+        $com="composite -gravity  NorthWest '$random2_legend'  '$random2'   '$random2'";//12\r
+       \r
+       break;//$c.="'".$url_list[$i]."' ";?\r
+       \r
+       }       \r
+       \r
+       }\r
+       \r
+       shell_exec($com);\r
+       //print($com);\r
+       \r
+       //B&W mode ftheeten 2011/07/05\r
+       \r
+       if (strtolower($p_grayscale)==='true')\r
+       {\r
+               $com_monochrome="convert -type Grayscale '$random2' '$random2'";\r
+               shell_exec($com_monochrome);\r
+       }\r
+       \r
+       }\r
+       \r
+       \r
+       \r
+       \r
+       \r
+       //RMCA 09/04/2010\r
+       $img=$p_img;\r
+       //if($flagError===false)\r
+       //{\r
+               if(strtolower($img)=='false')\r
+               {\r
+                       $headerText="Content-Type: application/json";\r
+                       if($p_no_header_for_tests===FALSE)\r
+                       {               \r
+                               header($headerText);\r
+                               header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1\r
+                               header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date dans le passé\r
+                       }                       \r
+                       print($json);\r
+               }\r
+               else\r
+               {\r
+                       if($p_no_header_for_tests===FALSE)\r
+                       {\r
+                               $headerText="Content-Type: image/png";  \r
+                               header($headerText);\r
+                               header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1\r
+                               header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date dans le passé\r
+                       }\r
+                       \r
+                       readfile($random2);\r
+\r
+               }\r
+       //}\r
+       //else//Error\r
+       //{             //print($_SERVER['SERVER_PROTOCOL']. '400 Bad Request');\r
+       //              $headerText=$_SERVER['SERVER_PROTOCOL']. ' 400 Bad Request';    \r
+       //              header($headerText,true,"400");\r
+       //              header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1\r
+       //              \r
+       //              print($errorMessage);\r
+       //}\r
+       \r
+       //ob_flush();\r
+       if(strtolower($p_jsoncreatefile)!="true")\r
+       {\r
+               unlink($random2);\r
+       }\r
+       \r
+       \r
+       //} oold if for 'img==true'\r
+       \r
+       //clearstatcache();\r
+       \r
+       $time=time();\r
+       \r
+       \r
+       \r
+       \r
+       \r
+       /* commented by ftheeten 2010/04/13 (to have sld still available) -> should be repalced by a Cron job*/\r
+       \r
+       while($entry = $d->read()) { \r
+       \r
+        if ($entry!= "." && $entry!= "..") { \r
+       \r
+       \r
+       \r
+                    $f_last_modified = filemtime($sld_dir."/".$entry);\r
+       \r
+       \r
+       \r
+       if ($time-$f_last_modified >400)\r
+       \r
+       {\r
+       \r
+       unlink($sld_dir."/".$entry);\r
+       \r
+       }   \r
+       \r
+       \r
+       \r
+        } \r
+       \r
+       } \r
+       \r
+       \r
+       \r
+       \r
+       \r
+       while($entry = $e->read()) { \r
+       \r
+        if ($entry!= "." && $entry!= "..") { \r
+       \r
+       \r
+       \r
+                    $f_last_modified = filemtime($img_dir."/".$entry);\r
+       \r
+       \r
+       \r
+       if ($time-$f_last_modified >400000)\r
+       \r
+       {\r
+       \r
+       unlink($img_dir."/".$entry);\r
+       \r
+       }   \r
+       \r
+       \r
+       \r
+        } \r
+       \r
+       } \r
+       \r
+       \r
+       \r
+       \r
+       \r
+       \r
+       \r
+       //$d->close(); \r
+       \r
+       $e->close();\r
+       \r
+       }\r
+\r
+\r
+}\r
+\r
+\r
+?>\r