 /***************************************************************
  * @author : Randrianarivelo Tiana
  * @Date : 10/06/08
  * @version : 0.1
  * SOS request utilities
  * Function lists :
  *   createSOAPDescribeSensor(sensorid) : request
  *   createSOAPGetObseravation(sensorid) : request
  *   createSOAPGetResult(sampling_time,observationTemplate) : request
  *   doSOAPRequest(request,handleAs) : response
  */
 var sosrequest = { 
  createSOAPDescribeSensor : function(sensorid){
	var request = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+
		'<soap:Envelope 	xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" '+
			'soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> '+
			'<soap:Header/> '+
			'<soap:Body> '+
				'<DescribeSensor  '+
					'xmlns="http://soap.ws.sos.seagis.net/" '+
					'xmlns:sos="http://www.opengis.net/sos/1.0" '+
					'xmlns:sml="http://www.opengis.net/sml/1.0" '+
					'outputFormat="text/xml;subtype=&quot;SensorML/1.0.0&quot;" '+
					'service="SOS" version="1.0.0"> '+
					'<sos:procedure>' +sensorid+ '</sos:procedure> '+
				'</DescribeSensor>'+
			'<soap:Fault/>'+
			'</soap:Body>'+
		'</soap:Envelope>';
	return request;
  },
  
  createSOAPGetObservation  : function(component){
	console.debug("createGetObservation : "+component);
	var request = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+
		'<soap:Envelope 	xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" '+
			'soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> '+
			'<soap:Header/> '+
			'<soap:Body> '+
				'<GetObservation xmlns="http://soap.ws.sos.seagis.net/" '+
						'xmlns:ogc="http://www.opengis.net/ogc" '+
						'xmlns:xlink="http://www.w3.org/1999/xlink" '+
						'xmlns:sos="http://www.opengis.net/sos/1.0" '+
						'xmlns:gml="http://www.opengis.net/gml"  '+
						'service="SOS" '+
						'srsName="EPSG:4326" '+
						'version="1.0.0"> '+
							'<sos:offering>offering-allSensor</sos:offering>'+
							'<sos:eventTime>'+
							'<ogc:TM_During>'+
							'<gml:TimePeriod>'+
							'<gml:beginPosition>'+'1990-01-01T00:00:00'+'</gml:beginPosition>'+
							'<gml:endPosition>'+'2008-12-30T00:00:00'+'</gml:endPosition>'+
							'</gml:TimePeriod>'+
							'</ogc:TM_During>'+
							' </sos:eventTime>'+
							'<sos:observedProperty>urn:ogc:def:phenomenon:BRGM:'+component.phenomenon+'</sos:observedProperty>'+
							'<sos:procedure>'+component.sensorid+'</sos:procedure>'+		
							'<sos:responseFormat>text/xml; subtype=&quot;om/1.0.0&quot;</sos:responseFormat>'+
							'<sos:responseMode>resultTemplate</sos:responseMode>'+
				'</GetObservation>'+
			'<soap:Fault/>'+
			'</soap:Body>'+
		'</soap:Envelope>';
	return request;
  },
      createSOAPGetResult : function(sampling_time,observationTemplate){
	console.debug("createGetResult : ");
	var request = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+
		'<soap:Envelope 	xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" '+
			'soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> '+
			'<soap:Header/> '+
			'<soap:Body> '+
				'<GetResult '+
					'xmlns="http://soap.ws.sos.seagis.net/" '+
					'xmlns:sos="http://www.opengis.net/sos/1.0"   '+
					'xmlns:gml="http://www.opengis.net/gml"  '+
					'xmlns:ogc="http://www.opengis.net/ogc"  '+
					'service="SOS"  '+
					'srsName="EPSG:4326"  '+
					'version="1.0.0">'+
					'<sos:ObservationTemplateId>'+observationTemplate+'</sos:ObservationTemplateId>'+
					'<sos:eventTime>'+
					'<ogc:TM_During>'+
					'<gml:TimePeriod>'+
					'<gml:beginPosition>'+sampling_time.begin+'</gml:beginPosition>'+
					'<gml:endPosition>'+sampling_time.end+'</gml:endPosition>'+
					'</gml:TimePeriod>'+
					'</ogc:TM_During>'+
					' </sos:eventTime>'+
				'</GetResult>'+
			'<soap:Fault/>'+
			'</soap:Body>'+
		'</soap:Envelope>';
	console.debug("createGetResult : "+request);
	return request;
  },
  
    doSOAPRequest : function(request,url,handleAs){
    //proxy?url=+escape(url)
	console.debug("doSOAPRequest : "+request);
	var data = "";
	dojo.rawXhrPost({
		url: url,
		handleAs: handleAs,
		headers:{"SOAPAction":""},
		postData:request,
		contentType: "text/xml;charset=utf-8",
		sync: true,
		load: function(response, ioArgs) { 
			data=response;
			return response;
		},
		error: function(response, ioArgs) {
			console.error("HTTP status code: ", ioArgs.xhr.status);
		}
	});
	return data;
  }
  
 }