	function getOriginsBySite(site){
		switch (site){
			case 0://viajes marsans
				return new Array("Madrid","Barcelona");
			case 1://viajes marsans portugal
			
			case 2://viajes crisol
			
			case 3://mundo viaje
		}
		return null;
	}
	/*
	Funcion que retorna la posicion del origen dentro del vector
	parametros:
		origins: vector de strings con el nombre de los origenes
		originToCompare:nombre del origen a buscar
	devuelve:
		posicion del origen dentro del vector o -1 si no lo encuentra
	*/
	function isInOrderOriginsBySite(v, originToCompare){
		for(var iOrigins = 0 ; iOrigins < v.length; iOrigins++){
			var strOrigin = v[iOrigins].name;
			if(strOrigin == undefined){
				strOrigin = v[iOrigins];
			}
			if(strOrigin == originToCompare){
				return iOrigins;
			}
		}
		return -1;
	}
	
	
	/*
	Funcion que ordena un array de sites en funcion de unos valores predefinidos
	parametros:
		data: vector original con el nombre de los origenes y sus codigos
		origins: vector con el nombre de los origenes que deben ordenarse
	devuelve:
		vector con los datos ordenados segun los criterios del vector de origins
	*/
	function orderOriginsBySite(vData, site){
	//obtenemos los origenes para el site correspondiente
		vOriginsBySite = getOriginsBySite(site);
		if(vOriginsBySite != null && vOriginsBySite.length != 0){
			//comprobamos cuantos de los sites ordenados se encuentran en el listado de origenes devuelto
			var iCoincidences = getNumberCoincidences(vData,site);
			//si el numero de ocurrencias coincide con el numero de origenes por site
			if(iCoincidences != 0){
				var vOrigins = getVOrigins(vData,iCoincidences,vOriginsBySite);
				var newData = getVOriginsOrderByCriteria(vOrigins,vData);
				return newData;
			}else{
				return vData;
			}
		}else{
			return vData;
		}
		return null;
	}
	
	function getVOriginsOrderByCriteria(vo,vdat){
		var newData = new Array(vdat.length);
		for(i=0;i<vo.length;i++){
			newData[i]=vo[i];
		}
		var ji = vo.length;
		for(j=0;j<vdat.length;j++){
			var bExist = false;
			for(k=0;k<vo.length;k++){
				var sDat = vdat[j].name;
				if(sDat == undefined){
					sDat = vdat[j];
				}
				var sVo = vo[k].name;
				if(sVo==undefined){
					sVo= vo[k];
				}
							
				if(sDat == sVo){
					bExist = true;
					/*newData[ji] = vdat[j];
					ji++;*/
				}
			}
			if(!bExist){
				newData[ji] = vdat[j];
				ji++;
			}
		}
		return newData;
	}

	function getVOrigins(v,ic,vo){
		var newData = new Array(ic);
		var pos = 0;
		if(vo != null && vo.length != 0){
			for(i=0;i<vo.length;i++){
				var strOrigin = vo[i];
				for(j=0;j<v.length;j++){
					strOrigin = v[j].name;
					if(strOrigin == undefined){
						strOrigin = v[j];
					}
					if(strOrigin == vo[i]){
						newData[pos] = v[j];
						pos++;
					}
				}
			}
			return newData;
		}
		return null;
	}
	
	function getNumberCoincidences(data, site){
		var icoincidences = 0;
		var origins = getOriginsBySite(site);
		if(origins != null && origins.length != 0){
			for(var iData = 0; iData < data.length; iData++){
				var strOrigin = data[iData].name;
				if(strOrigin == undefined){
					strOrigin = data[iData];
				}
				var iPosBySite = isInOrderOriginsBySite(origins, strOrigin);
				if(iPosBySite != -1){
					icoincidences++;
				}
			}
		}
		return icoincidences;

	}
