Index: trunk/zoo-project/zoo-kernel/doc/index.dox
===================================================================
--- trunk/zoo-project/zoo-kernel/doc/index.dox	(revision 751)
+++ trunk/zoo-project/zoo-kernel/doc/index.dox	(revision 752)
@@ -13,6 +13,6 @@
 Home: http://www.zoo-project.org<br>
 Download: 
- <a href="http://zoo-project.org/site/Downloads#Downloads">http at zoo-project.org</a>,
- <a href="http://zoo-project.org/site/Downloads#Fordevelopers">svn at zoo-project.org</a>
+ <a href="http://zoo-project.org/Code/Download">http at zoo-project.org</a>,
+ <a href="http://svn.zoo-project.org/svn/">svn at zoo-project.org</a>
 
 This documentation describes the ZOO-Project C-API. You can start your visit by the Data Structures link above which details all available structures in ZOO-Project. The Files link presents all source files used to generate this documentation.
Index: trunk/zoo-project/zoo-kernel/service_internal_js.c
===================================================================
--- trunk/zoo-project/zoo-kernel/service_internal_js.c	(revision 751)
+++ trunk/zoo-project/zoo-kernel/service_internal_js.c	(revision 752)
@@ -458,5 +458,5 @@
   while(isArray==NULL && tmpm!=NULL){
     jsval jsstr;
-    if((isBinary!=NULL && strncasecmp(tmpm->name,"value",5)==0))
+    if(isBinary!=NULL && strncasecmp(tmpm->name,"value",5)==0)
       jsstr = STRING_TO_JSVAL(JS_NewStringCopyN(cx,tmpm->value,atoi(isBinary->value)));
     else
@@ -473,11 +473,16 @@
     JSObject* values=JS_NewArrayObject( cx, cnt, NULL );
     JSObject* mvalues=JS_NewArrayObject( cx, cnt, NULL );
-    map *tmpm1,*tmpm2;
+    map *tmpm1,*tmpm2,*tmpm3;
     int i=0;
     for(i=0;i<cnt;i++){
       tmpm1=getMapArray(t,"value",i);
       tmpm2=getMapArray(t,tmap->name,i);
+      tmpm3=getMapArray(t,"size",i);
       if(tmpm1!=NULL){
-	jsval jsstr = STRING_TO_JSVAL(JS_NewStringCopyN(cx,tmpm1->value,strlen(tmpm1->value)));
+	jsval jsstr;
+	if(tmpm3!=NULL)
+	  jsstr = STRING_TO_JSVAL(JS_NewStringCopyN(cx,tmpm1->value,atoi(tmpm3->value)));
+	else
+	  jsstr = STRING_TO_JSVAL(JS_NewStringCopyN(cx,tmpm1->value,strlen(tmpm1->value)));
 	JS_SetElement( cx, values, i, &jsstr );
       }
@@ -491,4 +496,14 @@
     JS_SetProperty(cx, res,"value",&jvalues);
     JS_SetProperty(cx, res,tmap->name,&jmvalues);
+    while(tmpm!=NULL){
+      if(strncasecmp(tmpm->name,"value",5)!=0 && strncasecmp(tmpm->name,"size",4)!=0 && strncasecmp(tmpm->name,tmap->name,strlen(tmap->name))!=0){
+	jsval jsstr = STRING_TO_JSVAL(JS_NewStringCopyN(cx,tmpm->value,strlen(tmpm->value)));
+	JS_SetProperty(cx, res, tmpm->name,&jsstr);
+      }
+#ifdef JS_DEBUG
+      fprintf(stderr,"[JS] %s => %s\n",tmpm->name,tmpm->value);
+#endif
+      tmpm=tmpm->next;
+    }
   }
   return res;
Index: trunk/zoo-project/zoo-kernel/service_internal_ms.c
===================================================================
--- trunk/zoo-project/zoo-kernel/service_internal_ms.c	(revision 751)
+++ trunk/zoo-project/zoo-kernel/service_internal_ms.c	(revision 752)
@@ -958,4 +958,12 @@
 	}
       }
+      else{
+	if(nBandsI==1){
+	  myLayer->offsite.red=0;
+	  myLayer->offsite.green=0;
+	  myLayer->offsite.blue=0;
+	}
+	msLayerAddProcessing(myLayer,"RESAMPLE=BILINEAR");
+      }
     }
     if( strlen(GDALGetRasterUnitType(hBand)) > 0 ){
Index: trunk/zoo-project/zoo-kernel/service_internal_saga.c
===================================================================
--- trunk/zoo-project/zoo-kernel/service_internal_saga.c	(revision 751)
+++ trunk/zoo-project/zoo-kernel/service_internal_saga.c	(revision 752)
@@ -559,5 +559,9 @@
   }
   else{
+#ifdef HAVE_LIBKML
     addToMap(arg,"FORMAT","LIBKML");
+#else
+    addToMap(arg,"FORMAT","KML");
+#endif
   }
   free(fext);
Index: trunk/zoo-project/zoo-kernel/zoo_service_loader.c
===================================================================
--- trunk/zoo-project/zoo-kernel/zoo_service_loader.c	(revision 751)
+++ trunk/zoo-project/zoo-kernel/zoo_service_loader.c	(revision 752)
@@ -1024,4 +1024,19 @@
       setMapInMaps(m,"main","serverAddress",tmpUrl);
     }
+
+  // CORS Support
+  if(strncasecmp(cgiRequestMethod,"OPTIONS",7)==0){
+    map* cors=getMapFromMaps(m,"main","cors");
+    if(cors!=NULL && strncasecmp(cors->value,"true",4)==0){
+      char *encoding=getEncoding(m);
+      printHeaders(m);
+      printf("Content-Type: text/plain; charset=%s\r\nStatus: 200 OK\r\n\r\n",encoding);
+      printf(_("CORS is enabled.\r\n"));
+      freeMaps (&m);
+      free (m);
+      fflush (stdout);
+      return 3;
+    }
+  }
 
   //Check for minimum inputs
